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.
No hay comentarios:
Publicar un comentario