Alumno: Victor Cuauhtemoc Vargas Ramírez
Especialidad: Programación
Grupo: 4IM8
Profesor: Juan Manuel Cruz Mendoza
TÉCNICAS DE PROGRAMACIÓN PERSONAL CON CALIDAD
Miércoles 22 de Abril del 2015
INTRODUCCIÓN.
Durante la clase de Técnicas de Programación Personal con Calidad se analizaron los factores internos y externos que nos permiten evaluar la calidad del software, obteniendo que la calidad del software es mejor descrita como una combinación de varios factores.
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,
Todos queremos que nuestros sistemas de software sean rápidos, útiles y sencillos de usar, de tal manera que el usuario detecte estas características y juzgue de una manera mas objetiva el nivel de calidad que posee el software que se le brindó.
DESARROLLO.
Siempre para que nuestro usuario pueda analizar y evaluar nuestro sistema toma en cuenta los factores externos de acuerdo a su percepción, ya que, ellos debido a su falta de conocimientos acerca del código y temas acerca de la programación, no podrían evaluar nuestro nivel de programación de acuerdo al código.
Veamos ahora, los factores mas importantes:
1. Exactitud
Es lo más trascendente dentro un software.
Es un factor externo que se satisface a través de los requerimientos funcionales del software y tiene que lograr con los objetivos planteados.
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 de software.
Es un factor externo que se satisface a través de los requerimientos funcionales del software y tiene que lograr con los objetivos planteados.
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 de software.
Un ejemplo software exacto podría ser WinRaR, ya que aparentemente, cumple con todo lo que nos ofrece.
Podríamos establecer una 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.
La robustez en software se define como la
capacidad de responder ante algún evento que pueda comprometer la funcionalidad
de este.
Al terminar de programar un sistema siempre se presentan situaciones que no se contemplan y la robustez nos asegura que estas no causaran eventos catastróficos que dañen la integridad de nuestro programa, de esta manera la robustez hará un despliegue de mensajes de error apropiados en donde pueda terminarse la ejecución de manera limpia manteniendo los datos seguros.
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
3. Reutilización
Al terminar de programar un sistema siempre se presentan situaciones que no se contemplan y la robustez nos asegura que estas no causaran eventos catastróficos que dañen la integridad de nuestro programa, de esta manera la robustez hará un despliegue de mensajes de error apropiados en donde pueda terminarse la ejecución de manera limpia manteniendo los datos seguros.
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
3. 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. Podemos afirmar que es la creación de un sistema
a partir de alguno ya existente.
Sin embargo la definición más 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:
Porcentaje de reutilización = (Software reutilizado/Software total) x 100
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.
4. Extensibilildad
Es la facilidad de adaptar los productos del software a los cambios que el cliente especifique.
5. Compatibilidad
5. Compatibilidad
Es la 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.
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
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.
COMPATIBILIDAD:
Sistemas con los que es capaz de trabajar en conjunto / 1 + Numero de cambios que
requiere el sistema para interactuar con el otro en cuestión.
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:
Eficiencia = resultados / recursos
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.
Recursos = memoria utilizada + tiempo empleado
7. Portabilidad
El esfuerzo necesario para transferir el programa de un entorno de hardware o software a otro.
8. Fácil de usar
Es la simplicidad con la cual las personas de varios
conocimientos y cualidades tienen la capacidad de aprender a usar un
software, aplicándolo para resolver problemas.
En la calidad del software es fundamental la facilidad de
uso de tu sistema, ya que normalmente el usuario que requerirá tu sistema no tiene tantos conocimientos 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 sus 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”.
Podríamos calcularlo por medio del tiempo que tarda en aprender a usar el software una persona con conocimientos muy básicos de computación, a menor tiempo, mayor facilidad de uso.
Podríamos calcularlo por medio del tiempo que tarda en aprender a usar el software una persona con conocimientos muy básicos de computación, a menor tiempo, mayor facilidad de uso.
9. Funcionalidad
Es la característica en la cual se incluyen las
características necesarias para un software, sin incluir funciones innecesarias
de software que complican al usuario realizar su acción.
Por ejemplo en el año de 2011-2012 Facebook 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
Aspectos importantes acerca de 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 numero de errores
- Sus actualizaciones no afectan a la calidad de software
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 día 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”.
CONCLUSIÓN.
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 e intentando o pretendiendo cubrir los factores que evalúan su calidad.
Como anteriormente se mencionó, un software siempre será de calidad cuando cumpla todos los factores que la miden, sin embargo será cuestión del usuario si le agrada o no, y el le podrá poner una evaluación de manera subjetiva.
REFERENCIAS.
- Resumen Capitulo 1 de: "Object Oriented Software Construction" 2da Edition. Bernard Meyer
- Interpretaciones de alumnos del grupo 4IM8 de la Especialidad de Programación del CECyT 9. Abril 15, 2015.
No hay comentarios:
Publicar un comentario