viernes, 3 de julio de 2015

FORMATO RESUMEN PLAN-PROYECTO

En esta ocasión, hicimos uso de un formato basado en cuadernos de ingeniería para apoyarnos a llevar un registro y control sobre los proyectos que desarrollamos, en este caso, fue la realización de un ABCC conectado a base de datos, los resultados obtenidos fueron los siguientes:


miércoles, 1 de julio de 2015

Libro de 100 paginas



El objetivo de este ejercicio es hacer una aproximación del tiempo que me tardaría en hacer un libro de 100 páginas teniendo como especificaciones letra Arial 12, con interlineado 2.0 y texto justificado.


No se trata de escribir realmente 100 páginas, sino que a partir de las estadísticas obtenidas con el Curso MECA, calcular el tiempo que nos tardaríamos de acuerdo a nuestro promedio de tiempo y pulsaciones. Mi promedio de pulsaciones es de 220  p/m y mi promedio de tiempo es de 71 segundos.


Considerando que en una página de Word tiene 1979 caracteres, el calculo para saber cuanto tiempo tardaría en escribir las 100 cuartillas seria el siguiente:

Si:
60 seg -->  220 caracteres
entonces     x seg   ---> 1979
Por tanto x = 539 seg = 0.15 hr



De acuerdo con este cálculo, para 100 cuartillas el tiempo seria de 15.5hrs.

viernes, 12 de junio de 2015

Mercado de San Juan de Letrán

MERCADO DE SAN JUAN DE LETRÁN

El mercado de San Juan de Letrán ubicado enfrente de la Torre de Teléfonos de México, es un mercado antiguo de la ciudad de México que se caracteriza por vender ingredientes exóticos, desde especias hasta carnes de todo tipo de animal. Sirven también alimentos ya preparados utilizando los mismos ingredientes que se venden en el mercado; es ideal para los chefs, degustadores exigentes y de todo tipo, los restaurantes van a surtirse a este mercado pues buscan dar platillos con excelente calidad.
Si quieres ir a probar algo con un sabor diferente, este mercado es una excelente opción, además de que la gente (clientes y vendedores) te asesoran sobre que deberías de comer o comprar dependiendo el tipo de sabores que te gustan, texturas, etc.
En este mercado los productos son de muy buena calidad, la mayoría son importados, este aspecto no es tan bueno como parece pues creo que debería promoverse más los productos nacionales.
En nuestra visita al mercado, probamos las ‘tapas’ de jamón serrano acompañadas con vino tinto. La tapa estaba formada por una quinta parte de baguette, con jamón serrano, queso parmesano, jitomate y  aceite de oliva.
Como postre un pedazo de baguette con queso mascarpone, miel e higo, el queso sabía delicioso pues era como queso philadelphia pero bien hecho.



Nos dieron un poco de información sobre cómo saber si un queso es bueno, de qué depende el sabor de un queso pues hay que considerar  con que procedimiento fue hecho para lograr que tuviera las bacterias necesarias en su formación entre otras cosas. Para obtener un buen jamón, el cuidado de los cerdos es muy importante, la mayoría de los cerdos destinados a ser jamones, los deben de alimentar con almendras para que su carne tenga un sabor especial.




La atención en el local donde comimos fue muy buena, pues en otros mercados no ofrecen comida con ese tipo de calidad, además de que no tienen la amabilidad con la que nos atendieron en San Juan de Letrán.

domingo, 7 de junio de 2015

Codigo Java (Salón)

Java (ejercicio en el salón)

Java es un lenguaje orientado a objetos, esta característica nos facilita mucho el uso y realización de muchas funciones, pero para lograr esto debemos de saber que hace cada línea de código que escribimos; una buena manera de logra esto es ‘programando’ en papel, pareciera que no tiene ningún sentido hacer esto porque no tenemos un compilador en el que podamos correr nuestro programa y verificar que funciones, pero programar en papel nos ayuda a de alguna forma ‘compilar’ en nuestras cabezas y así evitar tener un elevado número de errores a la hora de escribir código en la computadora.

Aquí un ejercicio propuesto en clase donde se debe de crear la clase, métodos e  inicializar variables de acuerdo al diagrama dado:


Usuario
-nombre: String
-apaterno: String
-amaterno: String
+setNombre(id1String):void
+getNombre():String
+setApaterno(id2String):void
+getApaterno():String
+setAmaterno(id3String):void
+getAmaterno():String

Este fue el código que yo escribe como solución al problema:

public class Usuario
{
    private String nombre;
    private String apaterno;
    private String amaterno;
    
    public void setNombre(String nombre){
        this.nombre=nombre;
    }
    
    public String getNombre()
    {
        return nombre;
    }
    
    public void setApaterno(String apaterno)
    {
        this.apaterno=apaterno;
    }
    public Strin getApaterno()
    {
        return apaterno;
    }
    public void setAmaterno(String amaterno)
    {
        this.amaterno=amaterno;
    }
    public void getAmaterno()
    {
        return amaterno;
    }
    System.out.println("+nombre+" "+apaterno+" "+amaterno);
}

Tardé 16 minutos en escribir este código que además tiene errores.
Debo practicar y repasar temas de Java para no perder la práctica y poder codificar y dar solución a problemas en cualquier momento utilizando las herramientas que tenemos hasta el momento.

Altas JSP

JSP
JSP es una tecnología que sirve para crear páginas web auxiliándonos con Java. Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas JSP están compuestas de código HTML/XML mezclado con etiquetas especiales para programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual. 

Para aprender JSP, aparte de conocer HTML, será necesario comprender y tener algo de experiencia en la programación en Java, que es un lenguaje de programación Orientado a Objetos por completo. Una vez conocida la programación en Java se puede estudiar por encima el sistema de Servlets, lo que nos dará una mejor idea del funcionamiento interno del motor JSP. 

Necesitamos un código JSP de altas que se conecte a una base de datos:


Un código HTML para poder ingresar los datos a la base de datos:


Y un código SQL para crear la base de datos:




CURSOMECA

CURSOMECA

EL CURSOMECA es un sistema en línea para mejorar y aprender a mecanografiar correctamente con el teclado de la computadora. Consta de 27 lecciones gratis que proporcionan los conocimientos y habilidades básicas para lograr una buena velocidad con un porcentaje de errores menor al 3% al hacer un escrito.

En la clase de Técnicas de Programación con Personal de Calidad nos propusimos a mejorar nuestra velocidad y eficiencia al escribir en el teclado, pues es una habilidad básica que todo programador debe de tener; para lograr

Así una mejora dentro de nuestras líneas de programación.





La velocidad base que ahora tengo después de realizar las lecciones del curso es de aproximadamente 220 pulsaciones por minuto con menos del 3% de error. Mi conclusión es que el CURSOMECA si funciona pues se adapta al ritmo de cada usuario, además de proporcionar datos del trabajo desarrollado y el avance en cuanto a velocidad y errores.


martes, 28 de abril de 2015

ISO; Modelos de calidad de software


Capability Maturity Model Integration (CMMi) – Versión 1.1
 El modelo CMMi Versión 1.1 tiene el propósito de proporcionar una única guía unificada para la mejora de múltiples disciplinas tales como Ingeniería de Sistemas (SE – System Engineering), Ingeniería del Software y el Desarrollo Integrado del Producto y del Proceso (IPPD). Más recientemente, el esfuerzo está siendo ampliado para incluir requisitos específicos para la gestión y control de proveedores. Además, debido a la existencia de un modelo internacional para la mejora de los procesos del software; y determinación y evaluación de su capacidad (ISO/IEC TR 15504), hay un compromiso que el CMMi tenga conformidad y compatibilidad con dicho modelo internacional.
El CMMi está caracterizado por áreas de proceso para las 4 disciplinas que cubre actualmente, es decir: Ingeniería de Sistemas (SE), Ingeniería del Software, Desarrollo Integrado del Producto y del Proceso (IPPD) y la Fuente proveedora (A). Aunque muchas de las áreas de proceso (Process Area - PA) definidas en el CMMi tengan los mismos nombres que las áreas clave de proceso (Key Process Area - KPA), definidas en su modelo 41 anterior el SW-CMM, existen una serie de cambios significativos en cuanto al enfoque y al alcance de sus actividades y objetivos.
Los enfoques de CMMi están diseñados para describir los niveles de mejoramiento del proceso. Los Enfoques del CMMi tienen como finalidad atender a las diversas necesidades de las organizaciones que quieren realizar la mejora de sus procesos. Existen 2 enfoques: (1) Continuo y (2) Escalonado.
El Enfoque Continuo hace hincapié en la capacidad de ciertas áreas para realizar sus actividades de manera adecuada. El Enfoque Escalonado hace especial énfasis en el grado de madurez de los procesos (a semejanza del SW-CMM). Ambos enfoques reconocen que las áreas de proceso se pueden agrupar en 4 categorías generales: (1) Gestión de Proyectos, (2) Gestión de Procesos, (3) Ingeniería y (4) Apoyo; y dos categorías opcionales: (1) Desarrollo Integrado del Producto y del Servicio; y (2) Gestión de Compras
Personal Software Process (PSP)
El Personal Software Process (PSP) es un proceso de software definido y medido diseñado para ser usado por medio de un Ingeniero de Software individual. El PSP fue desarrollado por Watts Humphrey y tiene como objetivo guiar el planeamiento y desarrollo de los módulos de software o pequeños programas; y es adaptable a otras tareas del personal.
 Es una tecnología de SEI (Software Engineering Institute) que trae disciplina a las prácticas de los Ingenieros de Software, mejorando la calidad del producto, aumentando los costos y reduciendo el tiempo del ciclo de desarrollo del software. El PSP está basado en los principios de mejoramiento del proceso. CMM está enfocado respecto del mejoramiento de la capacidad organizacional.
El enfoque de PSP es el Ingeniero individual. Para fomentar el mejoramiento a nivel personal, PSP ofrece la administración y control del proceso al Ingeniero de Software. Con PSP los Ingenieros desarrollan software usando una propuesta estructurada y disciplinada. Los Ingenieros se ocupan de:
(1)  seguir un proceso definido
(2)  planificar, medir y seguir su trabajo
(3)  administrar la calidad del producto y     
(4)  aplicar aspectos cuantitativos para mejorar los procesos de trabajo personales.
 El proceso de PSP consiste de un conjunto de métodos, formularios y scripts que muestran a los Ingenieros de Software cómo planificar, medir y administrar su trabajo. El PSP está diseñado para ser usado en algún lenguaje de programación o metodología de diseño, y puede ser usado en varios aspectos del trabajo de software. Consiste en un proceso de nivel 5 de CMM diseñado para calcular el costo individual. Se aplica en la mayoría de las tareas de desarrollo de software como ser:
(1)  definición de requerimientos
(2)  diseño de la 97 arquitectura
(3)  desarrollo del módulo
(4)  producción de la documentación
(5)  pruebas del sistema
(6)  mantenimiento del sistema
(7)  desarrollo de pequeños programas.
Es un prerrequisito del planeamiento de la organización para producir el TSP (Team Software Process).
El proyecto PSP estuvo apuntando a demostrar que un proceso de nivel 5 de CMM podría ser usado por un particular para desarrollar software de alta calidad. PSP requiere de la participación de todos los niveles del management.
Una estrategia efectiva es primero involucrar a los principales Ejecutivos y Gerentes para luego entrenar a los Ingenieros respecto de PSP. El PSP muestra a los Ingenieros como:
(1)  administrar la calidad de sus proyectos
(2)  mejorar las estimaciones y planificaciones
(3)  reducir los defectos de sus productos.


El diseño de PSP está basado en los siguientes principios de planificación y calidad:
(1)  Todo Ingeniero es diferente y para ser más efectivo, los Ingenieros deben planificar su trabajo y deben basar sus planes en sus datos personales
(2)  Para mejorar el performance, los Ingenieros deben usar los procesos bien definidos y medidos (3) Para producir productos de calidad, los Ingenieros deben ser responsables de la calidad de sus productos. Los productos superiores no son producidos por medio de errores, los Ingenieros deben hacer lo posible por realizar un trabajo de calidad
(3)  Menor costo en encontrar y arreglar los defectos de un proceso
(4)  Es más eficiente prevenir defectos que encontrar y arreglarlos.
Team Software Process (TSP)
El proceso TSP (Team Software Process) fue desarrollado por Watt Humphrey en 1996. El objetivo era suministrar un proceso operacional que ayude a los Ingenieros hacer trabajos de calidad. El principal motivador para el desarrollo de TSP fue la convicción que los equipos de Ingenieros puedan hacer el trabajo de manera extraordinaria, pero solo si ellos son formados y entrenados.
El objetivo del TSP es construir y guiar a los equipos. Los equipos son requeridos para la mayoría de los proyectos de Ingeniería. El desarrollo de sistemas es una actividad en equipo, y la efectividad del equipo determina la calidad de la Ingeniería.
En Ingeniería, los equipos de desarrollo tienen múltiples especialidades y todos los miembros trabajan en vista de un objetivo en común. Los objetivos de TSP son:
(1)  ayudar a los equipos de Ingeniería de Software a elaborar productos de calidad dentro de los costos y tiempos establecidos
(2)  tener equipos rápidos y confiables
(3)  optimizar el performance del equipo durante todo el proyecto.
Para el uso de TSP, los desarrolladores de software deben ser entrenados primero en PSP. Usando PSP, los desarrolladores:
(1)  siguen un proceso personal definido y medido
(2)  planifican el trabajo antes de hacerlo
(3)  reúnen datos acerca del tiempo, tamaño y defecto
(4)  utilizan estos datos para administrar el trabajo del personal y asegurar la calidad de los productos que se desarrollan.
 107 TSP es una manera de guiar a los Ingenieros y a sus Gerentes en la utilización de métodos de trabajo en equipos efectivos. El equipo es un grupo de personas que comparten un objetivo en común. Un equipo debe tener más de un miembro y debe trabajar para alcanzar un objetivo en común. Los miembros del equipo deben tener roles, los cuales proveen un sentido de liderazgo y pertenencia. Los roles ayudan a los miembros del equipo a realizar sus trabajos, prevenir conflictos y establecer un grado de control respecto de su ambiente de trabajo. El sentido de control es un requerimiento fundamental para que los miembros estén motivados. La interdependencia es un elemento importante del equipo de trabajo. Significa que cada miembro del equipo depende del performance de los otros miembros. La interdependencia mejora el performance individual debido a que los miembros pueden ayudarse

Proceso de mejora
Se admite, estadísticamente, que en las organizaciones sin " Gestión de mejora Continua" el volumen de la ineficiencia puede estar entre un 15 y 25 % de sus ventas. Las que si la hacen, oscila entre 4 y 6%. Un rápido cálculo nos hará descubrir la magnitud de la respectiva "Mina de Oro" y el efecto que tiene sobre los resultados y la competitividad. La mayoría de los fallos o ineficiencias que configuran el despilfarro son desconocidos, considerados como normales, ignorados y con frecuencia ocultados. Actitudes que impiden buscar soluciones y evitar su repetición. La gestión de mejora continua en una organización requiere:
  • -          - El liderazgo de la dirección
  • -         -  Un comité de mejora continua
  • -         -  Formación y motivación específicas 
  • - - Un sistema de gestión documentado
  • -        -  Asesoramiento externo


Según la NTP-ISO 9000:2001, Mejora continua es una "actividad recurrente para aumentar la capacidad para cumplir los requisitos" siendo los requisitos la "necesidad o expectativa establecida, generalmente implícita u obligatoria".
  • -          Análisis y evaluación de la situación existente.
  • -          Objetivos para la mejora.
  • -          Implementación de posible solución.
  • -          Medición, verificación, análisis y evaluación de los resultados de la implementación. 
  • -          Formalización de los cambios.

Los resultados se revisan para detectar oportunidades de mejora. La mejora es una actividad continua, y parte de la información recibida del propio sistema y de los clientes. Dentro del contexto de un sistema de gestión de la calidad, el ciclo PHVA es un ciclo que esta en pleno movimiento. Que se puede desarrollar en cada uno de los procesos. Está ligado a la planificación, implementación, control y mejora continua, tanto para los productos como para los procesos del sistema de gestión de la calidad
Dentro del contexto de un sistema de gestión de la calidad, el ciclo PHVA es un ciclo que esta en pleno movimiento. Que se puede desarrollar en cada uno de los procesos. Está ligado a la planificación, implementación, control y mejora continua, tanto para los productos como para los procesos del sistema de gestión de la calidad.

El ciclo PHVA se explica de la siguiente forma:

Planificar:
- Involucrar a la gente correcta
- Recopilar los datos disponibles
- Comprender las necesidades de los clientes
- Estudiar exhaustivamente el/los procesos involucrados
- ¿Es el proceso capaz de cumplir las necesidades?
- Desarrollar el plan/entrenar al personal


Hacer:
- Implementar la mejora/verificar las causas de los problemas
- Recopilar los datos apropiados

Verificar:
- Analizar y desplegar los datos
- ¿Se han alcanzado los resultados deseados?
- Comprender y documentar las diferencias
- Revisar los problemas y errores
- ¿Qué se aprendió?
- ¿Qué queda aún por resolver?

Actuar:
- Incorporar la mejora al proceso
- Comunicar la mejora a todos los integrantes de la empresa

- Identificar nuevos proyectos/problemas.

martes, 21 de abril de 2015

Calidad de Software (Grupal)

Reutilización


El concepto de reutilización dentro del software puede aplicarse de distintas maneras al momento de usarlo.
1.     Consiste en la capacidad de un sistema (software) de ser utilizado en algún otro con el cual haya alguna similitud ya sea de código, diseño o especificación
2.    Es la creación de un sistema a partir de alguno ya existente

Pero la forma de definirlo de manera mas adecuada es:

Elementos de software creados en desarrollos anteriores que son empleados en un sistema nuevo que simplifica el proceso de desarrollo y a su vez otorga mayor calidad.

Un software que aplique la reutilización permite que el desarrollo sea mas eficiente, incremente su productividad y sea rápido, por lo los tiempos se reducen y permite el avance en algún otro aspecto del sistema como eficiencia, exactitud, etc.

La reutilización dentro de un sistema puede ser medida a través de una formula que establecimos como:




La reutilización no es lo mismo que la herencia o la copia del código en algún sistema. La reutilización normalmente puede ser dada en diversos programas mediante la importación, es decir, es una característica que solo se da en programación orientada a objetos.

En Java es fácil notar esta reutilización al momento de hacer uso de las librerías que nos brinda, se importa la clase de esa librería y se puede hacer uso de su contenido en el nuevo código.

COMPATIBILIDAD

Conceptualización:
*Facilidad para combinar un elemento de software con otro.
*Interacción de grupos de información a través de un lenguaje de software.
El que no haya compatibilidad no significa que los sistemas no funcionen o estén defectuosos, simplemente que no pueden trabajar juntos, que son incompatibles. La incompatibilidad se puede deber a varias causas, pero principalmente porque un sistema está obsoleto con respecto al otro o porque se ha diseñado para usar con un sistema en particular y no funciona con otros.

Contextualización:
Es importante generalizar software para que aumente su concepto y utilización en diferentes contextos, aquí se basa lo vital que es su papel y su respectiva evaluación

Ejemplificación:
Un ejemplo muy importante de compatibilidad, es el de las páginas web que son creadas a través de lenguajes como Javascript y HTML5; éstos se pueden reproducir y pueden correr en todos los exploradores  web existentes y cualquier tipo de página web se puede visualizar al cien por ciento.

Valorar y validar métrica:




FACIL DE USAR
Es la simplicidad con la cual las personas de varios conocimientos y cualidades tienen la capacidad de aprender a utilizar un software, aplicándolo para resolver problemas.
Tenemos que tomar en cuenta también la facilidad de instalación, de operar el software y de monitorearlo.
En la calidad del software es fundamental la facilidad de uso de éste, ya que normalmente el usuario que requerirá tu sistema no tiene conocimientos tan amplios acerca de éste, motivo por el cual es necesario hacerlo a un nivel de interpretación fácil para que el usuario pueda darle un uso efectivo. Si tu software no es fácil de usar, el usuario tendrá complicaciones al utilizarlo y de esta manera no satisfaces las necesidades planteadas, entonces podría dudarse de su calidad.
Un ejemplo de un software “Usable” es Facebook, ya que la mayoría de las personas poseen las herramientas necesarias para comprenderlo y utilizarlo para su conveniencia.
Es importante que el software proporcione orientación para los usuarios principiantes y al mismo tiempo no aburre a las personas con mayor cantidad de conocimientos en el tema, siendo muy útiles las interfaces de usuario, éstas se rigen por el siguiente principio: “No pretendas que conoces al usuario; no lo conoces”.

Funcionalidad

Es en el cual se incluye las características necesaria para un software, sin incluir funciones innecesarias de software que complican al usuario realizar su acción


Ejemplificar el concepto

Facebook en 2011-2012 incluye una actualización sobre cambiar tu perfil por biografía lo que dificulto a muchos usuarios sus acciones en la red social, perdiendo su funcionalidad

Métrica sobre la Funcionalidad
Cumple las funciones necesarias
Tienes los diseños (adornos) necesarios para que se  haga un software amigable
Sus métodos tienen el mínimo #errores o ninguno
Sus actualizaciones no afectan a la calidad de software

Ecuación para calcular la funcionalidad


Funcionalidad=(#metodos*métrica)/#errores


Robustez

Existen diversos tipos de software a lo largo del mundo, todos ellos cumplen una función específica, es decir, es el fin con el que fueron creados.
Sin embargo, todos ellos para que puedan funcionar y destacar, tienen que estar en un cierto nivel de calidad, basándose en las normas vigentes y los requerimientos solicitados.
La Real Academia Española define la calidad como la [1]"propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor".
Pero, enfocar este concepto a un software es difícil de definir, debido a que es subjetivo en la mayoría de los casos, ya que depende de los requerimientos en los que se basó y para quien va a ser dirigido el producto.
Por ejemplo, cierto software puede hacer funciones como sumar, restar, multiplicar y dividir sin tener fallas o retrasos, este podría ser considerado de calidad si su alcance es para educación primaria, sin embargo si se usara para educación secundaria, seguiría haciendo sus procesos de manera correcta, pero se debería de modificar sus funciones como el poder hacer ecuaciones, para poder seguir siendo de calidad en su campo.
Pero,  ¿Qué es calidad de software?,  personalmente la defino como el conjunto de los rubros de calidad de software que son cumplidos al ser evaluados (Puntualidad, Funcionalidad, Portabilidad, Etc.), mientras sean más, el software tendrá más calidad. Sin embargo, esta definición es totalmente subjetiva, ya que como se trató anteriormente, para alguien ciertos rubros serán más importantes que otros, por lo que si este dice que si el rubro X es más importante que el rubro Y, su calidad estará basada en como cumple con X, sin importar como realice Y o Z.
Algunos sitios web y autores explican que al hablar de calidad de software, inmediatamente se debe de tratar una métrica para poder medir algún rubro que se evalúa en calidad de software como Robustez o Exactitud.  [2] " En informática, el término métrica hace referencia a la medición del software en base a parámetros predeterminados, como puede ser el número de líneas de código de que consta o el volumen de documentación asociada. A veces en vez de hablar de métrica se usa el término “Indicadores” del software. Algunos ingenieros lo usan como sinónimos mientras que otros les atribuyen significados distintos."
Por ejemplo, la robustez en software se define como la capacidad de responder ante algún evento que pueda comprometer la funcionalidad de este, como algún cálculo erróneo, una métrica aproximada sería dividir el número de veces que el software funcionó bien entre el número de errores que hayan ocurrido, si es mayor a 1 el resultante, el software tiene robustez.
También se utilizan normas para la calidad de software, siendo la más común la  ISO 9000 la cual [3]"Pone a disposición de un auditor o certificador los procesos internos, de forma que este indique si cumple o no la normativa al 100%, audita el sistema; Si los resultados son positivos se emite la certificación y cada cierto tiempo se tiene que renovar; La certificación es costosa, a consecuencia de costes que ocasionan la lejanía y el tiempo de duración de proceso (aprox. 6 meses). Se certifica la empresa y la metodología para el desarrollo de la aplicación."

Al cumplir con la norma, los clientes tendrán más confianza al pedir sus requerimientos, ya que certifica la calidad con la que sus procesos son realizados.

Finalmente la calidad de software es importante para cualquier sistema, ya que compromete al programador a entregar un producto de calidad, en base a las especificaciones requeridas, por ejemplo, si es agradable estéticamente pero sus procesos no son realizados en el tiempo estipulado, a menos que el cliente no haya pedido como requerimiento que sus tareas sean hechas en el menor tiempo posible, no será de calidad para el usuario. Al final, es subjetivo para cualquiera.

Referencias

[1] Real Academia Española, Diccionario de la lengua española | Real Academia Española, 2012)
Consultado el 18/04/15

[2] (César Krall, Calidad del software. Métricas y fiabilidad de aplicaciones (1ª parte) (DV00103A), 2015)
Consultado el 18/04/15

[3] (Wikipedia, Calidad de software - Wikipedia, la enciclopedia libre, 2015)
Consultado el 18/04/15

Puntualidad

Es la habilidad de un sistema de ser entregado según la fecha prefijada o antes de que los usuarios lo esperen.
La economía acompaña este punto siendo la habilidad de un sistema para ser terminado exactamente o por debajo de su presupuesto original.
Las presiones de puntualidad podrían tentarnos a usar técnicas de “Desarrollo Rápido de Aplicaciones” cuyos resultados pueden no poseer mucha extensibilidad.
Métrica
Para esto debemos tener en cuenta que debemos medir el retraso pues es así como nos puede ayudar a mejorar a ese punto y darle más calidad.
R: retraso
T: Tiempo dado en horas  en que es dado el software de acuerdo a lo prefijado.
P: Tiempo prefijado dado en horas.
R=T-P
Siendo que si R es cero el retraso es nulo y fue entregado a tiempo, si es positivo hubo un retraso lo que indica que se necesita hacer una mejora en cambio si es negativo quiere decir que fue entregado antes que puede hablar bien.
Ejemplo:
En una escuela es pedido un software que se necesita ser entregado para su evaluación final dentro de 36 horas, uno de los equipos entrega su trabajo en 40 horas por lo que se aplica la métrica.
R=T-P;                     R=40-36;                      R=4
El resultado quiere decir que hubo un retraso de 4 horas que hizo que su calificación fue menor por lo que se necesita un proceso de mejora  para obtener una mejor calificación.
Este punto es importante pues en una gran empresa puede significar el que pidan o no pidan sus proyectos pues hoy en dia el mundo se mueve en tiempos exactos y lo que menos quieren es perder tiempo  ya que a ellos aplica el dicho: “el tiempo es oro”.

EXACTITUD

o   Es la base de un software
o   Es un factor externo que se logra a través de los requerimientos funcionales del software y tiene que lograr sus objetivos.
o   En la exactitud, todo va concatenado en función del software, tomando en cuenta que todos los elementos involucrados deben estar verificados, garantizados y asegurados por el desarrollador.

EJEMPLO: WinRaR.
Métrica:




En donde, si la exactitud es = 0, el software es de calidad y conforme la exactitud > 0, va decreciendo ésta.

La exactitud, como ya lo hemos mencionado, es la parte fundamental del software que, sin ella, el software simplemente sería nefasto. No importa si la interfaz es hermosa, si su capacidad es mayor o tenga algo extra, si no cumple con los requerimientos exactos.


Eficiencia
Se entiende que la eficiencia es la capacidad del software para hacer buen uso de los recursos que manipula con respecto al hardware. A diferencia de la eficacia, la eficiencia no busca solo cumplir con la funcionalidad, sino que va más allá de eso. Un software de calidad debe ser eficiente para que se  obtengan el máximo beneficio o por lo menos un beneficio conveniente por parte de los involucrados en su desarrollo  haciendo que haya un buen rendimiento del hardware de computadora.
Se propuso una métrica para la eficiencia de la siguiente manera:


Y a partir de esta se tomaron en cuenta como recursos la memoria y el tiempo que ocupa un software en realizar sus funciones y como resultados una evaluación de pruebas del software



El SAES del IPN es un software relativamente eficaz, sin embargo en muchas ocasiones poco eficiente pues algo que los usuarios (los estudiantes) notamos a menudo es la tardanza con que realiza sus funciones. Seguramente  lo que hace que éste software no logre solucionar esta problemática es porque el análisis que se necesita para la mejora continua no es de las principales prioridades.
Cuando se está comenzando un proyecto, se tiene presente con cumplir aquello que venga en los requerimientos, sin embargo, entregar algo que no se quede en ese nivel sino que trascienda es lo que hace la diferencia.