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:
viernes, 3 de julio de 2015
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
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.
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.
Suscribirse a:
Entradas (Atom)