domingo, 2 de febrero de 2014

Principios de calidad del Software

 Los 6 principios de calidad de software


Principio1: Si un cliente no demanda calidad, probablemente no la conseguirá
Los clientes siempre desean tener productos de calidad, ellos lo exigen. Los productos de baja calidad tienden a desaparecer del mercado. ¿En sí que es calidad del software? En una forma muy sencilla es:
  • Poder entregar un producto a tiempo
  • Con el costo real del producto que se estableció
  • Funcionando según las necesidades del cliente.

Los dos primeros puntos aparentemente cumplibles. Puedes entregar según la fecha y utilizar el presupuesto establecido para el producto. ¿De verdad haces lo que debes de hacer? Es aquí donde radica la calidad del software.

Principio 2: Para obtener calidad de manera constante los desarrolladores deben gestionarla en su trabajo.
No ganas nada teniendo un proceso definido para el desarrollo y la calidad del software si los desarrolladores no están comprometidos con la causa. Los desarrolladores deben ser las primeras personas comprometidas a hacer desarrollos con calidad y también deben ser los primeros en revisar el buen funcionamiento y desarrollo de los productos (software, aplicaciones, Web).

Principio 3: Para gestionar la calidad los desarrolladores deben medirla.
La calidad debe ser medida, por parte de los programadores y por el equipo de desarrollo, esto con el sentido de poder cuantificar la cantidad de errores que se cometen, por parte de cada miembro del grupo de trabajo, ello crea registros históricos de errores más comunes, tipos de errores, frecuencia de los errores, toda una hoja de ruta que te ayudará a valorar proyectos en un futuro. Utilizar metodologías como PSP, exigen mucha disciplina para contabilizar los errores y si se convierte en una buena práctica será una gran herramienta para mejorar la calidad de los productos.

Principio 4: La calidad de un producto la determina el proceso usado para desarrollarlo.
Como te mencionaba en el Principio 3, utilizando buenas metodologías y procesos de desarrollo, nuestro producto será de mejor calidad. Este debe tener una bitácora de errores, métodos de diseño, análisis y metodologías de construcción.

Principio 5: Ya que las pruebas solucionan solo una fracción de los defectos, debes tener pruebas de calidad.
¿Tú crees que las pruebas sobre el sistema, son las únicas pruebas que debemos hacer? La respuesta es no, muchas veces el sistema puede estar trabajando para eltester (quien hace las pruebas), debes hacerle seguimiento al producto ya que con el tiempo la aplicación falla, por qué no se tuvieron en cuenta elementos como: crecimiento de la información, usuarios, etc.
Por ello también es necesario hacer pruebas de confiabilidad de datos, desempeño, rendimiento, etc. Existe un número de pruebas que se deberían de hacer según el tipo de aplicación que está desarrollando.

Principio 6: La calidad solo la producen profesionales motivados orgullosos de su trabajo.
El software es desarrollado por profesionales dedicadas a ello. Motivar a estas personas, hace que se sientan orgullosos de su trabajo y hace que produzcan mejor código. Es buena práctica en tu empresa, cuidar y respetar a las personas dedicadas a esta labor en especial, cuidar un buen desarrollador es difícil y los recursos humanos de una empresa de desarrollo de software son su capital más importante.


Conclusión 
Para lograr el éxito en la producción de software es hacerlo con calidad y demostrar su buena calidad. Esto es posible con la implantación de un Sistema para el Aseguramiento de la Calidad del Software que cumpla con todos los requisitos preestablecidos.
Las medidas de calidad requieren de identificar los requisitos del software. La falta de concordancia con los requisitos es una falta de calidad.
Los estándares definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. Si no se sigue ninguna metodología siempre habrá falta de calidad.


Comparación de Software



CARACTERÍSTICAS DE DOS SOFTWARE

Slideshare

  • Eficiente: Espacio gratuito donde los usuarios pueden subir ("upload") presentaciones en formato PowerPoint -( ppt, pps, pot, pptx, potx, ppsx), OpenOffice (odp, pdf),  Apple Keynote (key, zip o pdf) y documentos de Microsoft Office (doc, docx, rtf, xls), OpenOffice (odt, ods, pdf), e iWork .
  •  Almacenados en formato Flash para ser visualizadas online.
  • Admite archivos de hasta 20 Mb de peso, sin transiciones entre diapositivas.
  • Accesible:Permite compartirla a través de correo electrónico o meterlo con su propio reproductor en nuestra página web. Una vez subido y  hecho público, podemos añadirle comentarios. 
  • Clasificados con tags (etiquetas), como las fotos en Flickr o los vídeos en YouTube. Es decir, cada presentación o documento  tiene unas palabras clave asociadas que informan sobre su contenido.
  • Tenemos la posibilidad de descargarnos las presentaciones siempre y cuando su autor lo permita.
  • Nos permite importar presentaciones y documentos que tengamos alojados en nuestro Google Docs a nuestra cuanta en Slideshare.
  • Pedirán que nos autentifiquemos con nuestro nombre de usuario y contraseña de Google. 
  • Portable: Se pueden incrustar  en cualquier página web o blog, del mismo modo que se inserta una imagen., un vídeo, etc. Junto a cada presentación hay un código que se copia y pega en el código de la página.







Prezi



Eficiente:Es una herramienta para realizar presentaciones en línea con efectos de animación. 

Ofrece licencias gratuitas de educación que han bautizado con el nombre de Prezi EDUEnjoy.

Accesible:  permite a profesores y estudiantes mantener su contenido privado y ofrece una capacidad de almacenamiento de 500 MB, cinco veces mayor que la anterior licencia gratuita que ofrecían.
Portable: Se pueden abrir desde cualquier plataforma en donde haya Internet y se puede anexar imágenes, audios, vídeos y archivos pdf. Una vez terminada la presentación se puede bajar a nuestro equipo para poder abrirla sin necesidad de estar en internet. Con Prezzi se podrá crear  diseño, insertar  vídeos, y a la ordenación de los elementos de texto y gráficos.
Factible:Posibilita que una presentación se aborde mostrando siempre una coherencia y relación de los elementos que se ponen en juego con relaciones multidimensionales, más allá que las lineales.

Además, es un recurso que tiene la noción de red y por tanto permite ser trabajado por un equipo multidisciplinario y compartido en Internet con comentarios y votaciones.



Gestion de Calidad


CALIDAD DE SOFTWARE

Totalidad de las características de un producto o servicio que le confieren su aptitud para satisfacer unas necesidades expresadas o implícitas (Norma UNE 66-001-92 traducción de ISO 8402) [AENOR, 1992].
La consecución de la calidad puede  tener tres orígenes: 
  • Calidad realizada: la que es capaz de obtener la persona que realiza el trabajo.
  • Calidad programada: La calidad que se ha pretendido obtener.
  • Calidad necesaria: La calidad que el cliente exige con mayor o menor grado de concreción.
Grado con el que un sistema, componente o proceso cumple:
  • Los requisitos especificados
  • Las necesidades o expectativas del cliente o usuario
  •  Aseguramiento (garantía) de calidad del software
Conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto satisfará los requisitos dados de calidad [AENOR, 1992].Conjunto de actividades para evaluar el proceso mediante el cual se desarrolla el producto.[IEEE, 1990]
  • Verificación y validación:
  • Verificación
Comprobar si los productos construidos en una fase del ciclo de vida satisfacen los requisitos establecidos en la fase anterior. 
Validación: Comprobar si el software construido satisface los requisitos de usuario.

 El plan de aseguramiento debe contener:
  • Objetivos de calidad del proyecto y enfoque para su consecución
  • Documentación referenciada en el plan.
  • Gestión de aseguramiento de la calidad.
  • Documentación de desarrollo y de control o gestión.
  • Estándares, normas y prácticas que hay que cumplir
  • Actividades de revisión y auditorías
  • Gestión de la configuración del software
  • Informes de problemas
  • Herramientas, técnicas y métodos de apoyo.
  • Control del código, de los equipos y de los suministradores.
  • Recogida, mantenimiento y almacenamiento de datos sobre la documentación de las actividades de aseguramiento de la calidad realizadas.