Blog creado para las materias de Ingeniería Básica de Software y Métodos Ágiles de Programación para su uso y revisión dentro del curso corrspondiente al grupo 6IM7.
martes, 7 de julio de 2015
lunes, 29 de junio de 2015
martes, 16 de junio de 2015
Cuaderno de Ingenieria CURSOMECA
Formato de Libro:
Arial 12 Renglones por Cuartilla: 23
Doble Salto de Línea Palabras: de 9 a 11
100 Cuartillas Letras por palabra: 9
Promedio Pulsaciones: 223 Cuartilla total: 2277 * 100 = 227700 palabras totales
Promedio tiempo 189.4 Minutos: 1021.07
HORAS: 17
Sueldo Base de Un Programador: $20 USD x Hora
COSTO TOTAL= 340 USD
domingo, 7 de junio de 2015
CURSOMECA
Me vi forzado a repetir el test debido a que no encontré el archivo original del certificado, ya que solo guarde el que no registró.
Por los mismos motivos subo esto hasta el día de hoy
Adjunto capturas del test "rápido" que realicé ese mismo día, al igual que su respectivo certificado. Se realizaron 5 intentos hasta lograr una puntuación de errores menor a 3%, los estipulado por CursoMeca.
Al parecer Cursomeca maneja hora de España, ya que me dejó el registro como 8 de Junio, sin embargo , la entrada quedará registrada como 7 de Junio, como comprobante de que se hizó dentro del mismo día.
Los códigos de validación corresponden al mismo test.
Altas con JSP
Tiempo Total: 38 minutos
Tiempo de Interrupción: 12 minutos
Tiempo efectivo: 26 minutos
TIEMPO ORIGINAL: 47 minutos.
Mejora?: Si ya que se agilizó el proceso de capturar sin necesidad de solo copiar y pegar, ya que requiere más tiempo. La parte que mostró más complicaciones fue la del JSP, ya que era demasiado código por aprender, debido a que este archivo conectará los datos ingresados con la base de datos, posteriormente se mostrará la parte en funcionamiento.
BASE DE DATOS (MySQL)
drop database sololetra;
create database sololetra;
use sololetra;
create TABLE datos (
Curp varchar (20),
Nombre varchar (30),
apaterno varchar (30),
amaterno varchar (30),
sexo varchar (30),
delegacion varchar (30),
colonia varchar (30),
PRIMARY KEY (Curp)
);
select * from datos;
ALTAS (PÁGINA HTML)
<html>
<body>
<div>
<form name="regi" action="altas.jsp" method="post">
CURP: <input type="text" name ="Curp" required>
<br>
Nombre: <input type="text" name ="Nombre" required>
<br>
Apellido Paterno: <input type="text" name ="ApellidoPaterno" required>
<br>
Apellido Materno: <input type="text" name ="ApellidoMaterno" required>
<br>
Sexo
<br><br>
Hombre <input type="radio" name="opera" value="Hombre" required>
Mujer <input type="radio" name="opera" value="Mujer" required>
Delegaciones:
<select name="deleg" id="delegacion" required>
<option> </option>
<option>Dele1</option>
<option>Dele2</option>
<option>Dele3</option>
<option>Dele4</option>
</select>
<br><br>
Colonias:
<select id ="colonias" name="colo" required>
<option> </option>
<option>Colo1</option>
<option>Colo2</option>
<option>Colo3</option>
<option>Colo4</option>
</select>
<input type="submit" value="Alta" name="alta" Onclick='alert("Enviando...")'>
</form>
</div>
</body>
</html>
JSP
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%@page import="java.sql.*, java.io.*" %>
<%
String curp = request.getParameter("Curp");
String nombre = request.getParameter("Nombre");
String apaterno = request.getParameter("ApellidoPaterno");
String amaterno = request.getParameter("ApellidoMaterno");
String sexo = request.getParameter("opera");
String delegacion = request.getParameter("deleg");
String colonia = request.getParameter("colo");
PreparedStatement pstatement = null;
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver");
conn= DriverManager.getConnection("jdbc:mysql://localhost/sololetra","root","n0m3l0");
String querystring = "INSERT INTO datos VALUES(?,?,?,?,?,?,?)";
pstatement = conn.prepareStatement(querystring);
pstatement.setString(1, curp);
pstatement.setString(2, nombre);
pstatement.setString(3, apaterno);
pstatement.setString(4, amaterno);
pstatement.setString(5, sexo);
pstatement.setString(6, delegacion);
pstatement.setString(7,colonia);
pstatement.executeUpdate();
out.println("<script>alert('Registro dado de alta exitosamente.')</script>");
out.println("<META HTTP-EQUIV='REFRESH' CONTENT='.0000001; URL=http://localhost:8080/prueba1/'/>");
%>
</body>
</html>
CAPTURAS
jueves, 28 de mayo de 2015
Código
Tiempo en segundos: 183
Líneas: 30
public class usuario {
private String nombre;
private String apaterno;
private String amaterno;
public void setNombre (String id1){
nombre = id1;
}
public String getNombre (){
return nombre;
}
public void setApaterno (String id2){
apaterno = id2;
}
public String getApaterno (){
return apaterno;
}
Líneas: 30
public class usuario {
private String nombre;
private String apaterno;
private String amaterno;
public void setNombre (String id1){
nombre = id1;
}
public String getNombre (){
return nombre;
}
public void setApaterno (String id2){
apaterno = id2;
}
public String getApaterno (){
return apaterno;
}
public void setAmaterno (String id3){
amaterno = id3;
}
public String getAmaterno (){
return amaterno;
}
amaterno = id3;
}
public String getAmaterno (){
return amaterno;
}
public void imprimeUsuario(){
System.out.println("Nombre" + nombre + "\n" + "Nombre" + nombre + "\n" +"Nombre" + nombre + "\n"
}
sábado, 25 de abril de 2015
Etapas de la Calidad
Al hablar de calidad se tiene la idea errónea de que al cumplir con los requisitos de una manera elegante, caprichosa , superior y fina de entregar el resultado final, cuando en realidad no es así, ya que la calidad por lo general es relacionada con como hacen sus procesos en base, a lo que prometen, o, a la calificación que el cliente otorga.
"El concepto de la calidad conocido como el conjunto de propiedades o atributos que posee objetivamente un producto o un servicio, o que le atribuyen subjetivamente los clientes, es en ocasiones ambiguo por las diferentes utilizaciones del término. "
Es decir, que la calidad es definida como como cumple sus atributos el producto en base a alguna promesa de la empresa o los requerimientos del cliente, por ejemplo, una empresa promete dar servicios de excelencia las veinticuatro horas del día, su calidad estará basada en como cumpla eso, si efectivamente su servicio es excelente y cualquiera puede atenderte sin importar la hora, su proceso es de calidad, sin embargo, si a cierta hora no hay nadie disponible , entonces esa calidad ira bajando.
La calidad siempre ha existido desde tiempos antiguos, por lo que expertos deciden dividir la historia su historia en cinco etapas.
Como se aprecia, los procesos han cambiado mucho, ya que de solo preocuparse por producir mucho, ahora, incluso se procura que el cliente quede satisfecho ya sea con el servicio recibido o con el producto solicitado.
Modelos de la calidad de software
También existen modelos que determinan las acciones que se realizan durante el proceso de producción, que sirven para poder asegurar que el producto final será de calidad.
Cada uno puede ser aplicado en base a que procesos se van a realizar y en como serán efectuados.
Integración de modelos de madurez de capacidades: es un modelo de evaluación de los procesos de una organización. Fue desarrollado inicialmente para los procesos relativos al desarrollo e implementación de software por la Universidad Carnegie-Mellon para el SEI (Software Engineering Institute). Sus origenes se remontan a 1986, donde se establecía que para que un proceso estuviera validado, debería de tener las siguientes características:
También existen modelos que determinan las acciones que se realizan durante el proceso de producción, que sirven para poder asegurar que el producto final será de calidad.
Cada uno puede ser aplicado en base a que procesos se van a realizar y en como serán efectuados.
Integración de modelos de madurez de capacidades: es un modelo de evaluación de los procesos de una organización. Fue desarrollado inicialmente para los procesos relativos al desarrollo e implementación de software por la Universidad Carnegie-Mellon para el SEI (Software Engineering Institute). Sus origenes se remontan a 1986, donde se establecía que para que un proceso estuviera validado, debería de tener las siguientes características:
- Estar definidas en un procedimiento documentado
- Estar provistas (la organización) de los medios y formación necesarios
- Ser ejecutadas de un modo sistemático, universal y uniforme (institucionalizadas)
- Estar medidas y verificadas
Cada área de proceso está regulada por cinco niveles de madurez, que evalúan la calidad de este:
- Inicial: El proceso es impredecible, es reactivo y pobremente controlado. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. Por lo general causados por falta de planificación.
- Repetible: Se caracteriza por su aplicación a proyectos. las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad.
- Definido: El proceso es pro-activo y se ve a nivel de la organización. Se implementan técnicas de revisión por pares (peer reviews).
- Gestionado: Se caracteriza porque las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos.
- Optimizado: Se enfoca en la mejora continua, mediante el uso de métricas, buscando innovar procesos anteriores.
Como se puede apreciar, los últimos dos niveles, ya se enfocan más en mejorarse a sí mismos, en cuanto a los procesos y productos realizados.
Una organización, debe de ser evaluada para poder verificar que sus procesos se rigen por el CMMI, por el cual reciben alguna calificación (En base a los niveles mencionados anteriormente). Normalmente se maneja la escala de 2-5, ya que si se usara el número 1, significa que la empresa o bien debería de retirarse, o cambiar radicalmente sus procesos.
Team Software Process: Al juntarse con el Personal Software Process, proporciona un marco de trabajo de procesos definidos que está diseñado para ayudarle a equipos de gerentes e ingenieros a organizar y producir proyectos de software de gran escala, que tengan tamaños mayores a varios miles de líneas de código, ya que ayuda a entregar los productos finales en tiempo y forma.
Sus inicios se remontan a 1996, que fue patrocinado por el Departamento de Defensa de los Esatdos Unidos. Este se enfoca en el proceso de la construcción de un equipo productor de software, estableciendo objetivos del equipo, distribuyendo los roles, y otras actividades de trabajo en equipo.
Para que este modelo pueda tener resultados es necesario que anteriormente se haya aprendido el modelo PSP (algunos autores llaman a este modelo TSPCPSP debido a esto).
Se empieza con cuatro días de despeje, diseñado para realizar la documentación, realización de equipos, establecimiento de metas, entre otros. Este despeje esta dirigido por un lider con experiencia.
En los equipos de TSP se identifican los siguientes roles:
• Líder del Equipo: Dirige al equipo, se asegura que todos reporten sus datos de los procesos y completen su trabajo tal y como se planeó. Realiza los reportes semanales del avance del equipo.
• Gestor de desarrollo: Guía al equipo en el diseño y desarrollo del producto.
• Gestor de Planificación: Apoya y guía al equipo en la planificación y seguimiento del trabajo.
• Gestor de Calidad/Proceso: Apoya al equipo en definir sus necesidades acerca del proceso y a establecer y administrar el plan de calidad. Genera estándares para obtener un trabajo uniforme. Modera las inspecciones y revisa cada artefacto generado.
• Administrador de Requerimientos/Soporte: Dirige al equipo en el desarrollo de requerimientos de software y ayuda a dar a conocer la tecnología y en las necesidades de apoyo administrativo. Administra el plan de configuración.
Durante el TSP, se revisan cada una de las etapas que compone el proyecto , principalmente en las primeras, lo que permite un número menor de fallos.
En conclusión, la calidad no solo puede medirse, sino también se le pueden aplicar modelos que permitan y aseguren que el producto final no será malo, sino lo contrario, ya que los filtros no solo son aplicados al último resultado, sino también a los procesos involucrados en este, permitiendo una consistencia en todo el desarrollo. Desde hace tiempo, la gente se interesó en entregar bien los productos, para lograr una satisfacción del cliente, evento que sigue sucediendo hasta el día de hoy.
Referencias
[1](Hugo A. Pedrini,Alconet es internet Portal de Alcorta,2003)
Consultado el 25/04/15
[2] (Wikipedia, Team Software Process - Wikipedia, la enciclopedia libre, 2014)
Consultado el 25/04/15
[3](David Alejandro Gómez,Team Software Process (TSP),2009)
Consultado el 25/04/15
Una organización, debe de ser evaluada para poder verificar que sus procesos se rigen por el CMMI, por el cual reciben alguna calificación (En base a los niveles mencionados anteriormente). Normalmente se maneja la escala de 2-5, ya que si se usara el número 1, significa que la empresa o bien debería de retirarse, o cambiar radicalmente sus procesos.
Team Software Process: Al juntarse con el Personal Software Process, proporciona un marco de trabajo de procesos definidos que está diseñado para ayudarle a equipos de gerentes e ingenieros a organizar y producir proyectos de software de gran escala, que tengan tamaños mayores a varios miles de líneas de código, ya que ayuda a entregar los productos finales en tiempo y forma.
Sus inicios se remontan a 1996, que fue patrocinado por el Departamento de Defensa de los Esatdos Unidos. Este se enfoca en el proceso de la construcción de un equipo productor de software, estableciendo objetivos del equipo, distribuyendo los roles, y otras actividades de trabajo en equipo.
Para que este modelo pueda tener resultados es necesario que anteriormente se haya aprendido el modelo PSP (algunos autores llaman a este modelo TSPCPSP debido a esto).
Se empieza con cuatro días de despeje, diseñado para realizar la documentación, realización de equipos, establecimiento de metas, entre otros. Este despeje esta dirigido por un lider con experiencia.
En los equipos de TSP se identifican los siguientes roles:
• Líder del Equipo: Dirige al equipo, se asegura que todos reporten sus datos de los procesos y completen su trabajo tal y como se planeó. Realiza los reportes semanales del avance del equipo.
• Gestor de desarrollo: Guía al equipo en el diseño y desarrollo del producto.
• Gestor de Planificación: Apoya y guía al equipo en la planificación y seguimiento del trabajo.
• Gestor de Calidad/Proceso: Apoya al equipo en definir sus necesidades acerca del proceso y a establecer y administrar el plan de calidad. Genera estándares para obtener un trabajo uniforme. Modera las inspecciones y revisa cada artefacto generado.
• Administrador de Requerimientos/Soporte: Dirige al equipo en el desarrollo de requerimientos de software y ayuda a dar a conocer la tecnología y en las necesidades de apoyo administrativo. Administra el plan de configuración.
Durante el TSP, se revisan cada una de las etapas que compone el proyecto , principalmente en las primeras, lo que permite un número menor de fallos.
En conclusión, la calidad no solo puede medirse, sino también se le pueden aplicar modelos que permitan y aseguren que el producto final no será malo, sino lo contrario, ya que los filtros no solo son aplicados al último resultado, sino también a los procesos involucrados en este, permitiendo una consistencia en todo el desarrollo. Desde hace tiempo, la gente se interesó en entregar bien los productos, para lograr una satisfacción del cliente, evento que sigue sucediendo hasta el día de hoy.
Referencias
[1](Hugo A. Pedrini,Alconet es internet Portal de Alcorta,2003)
Consultado el 25/04/15
[2] (Wikipedia, Team Software Process - Wikipedia, la enciclopedia libre, 2014)
Consultado el 25/04/15
[3](David Alejandro Gómez,Team Software Process (TSP),2009)
Consultado el 25/04/15
sábado, 18 de abril de 2015
Ensayo
La Calidad de Software
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 baso y para quien va a ser dirigido el producto.
[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)
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 baso 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 trato 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.
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 trato 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." A continuación algunas definiciones con sus respectivas métricas.
Robustez
Robustez
Nada es perfecto en esta vida, incluso los sistemas más avanzados pueden llegar a tener fallas, por lo que deben de estar preparados para poder responder ante cualquier imprevisto, lo cual es definido como robustez.
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 propuesta 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.
Robustez=# de veces que respondió bien el software/# de veces que falló el software
Por ejemplo, dentro del sistema operativo Windows, existen ciertos eventos los cuales pueden causar un fallo masivo en el equipo, sin embargo, la robustez del software impide que falle, lo cual solamente mandará un mensaje "Windows se recuperó de un cierre inesperado" , dando a conocer al usuario que el sistema estuvo a punto de fallar pero este pudo responder ante el error.
Puntualidad
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 mas confianza al pedir sus requerimientos, ya que certifica la calidad con la que sus procesos son realizados.
Métrica:
Compatibilidad = Sistemas con los que es capaz de trabajar en conjunto / 1+Número de cambios que requiere el sistema para poder trabajar con otro.
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.
ReferenciasRobustez=# de veces que respondió bien el software/# de veces que falló el software
Por ejemplo, dentro del sistema operativo Windows, existen ciertos eventos los cuales pueden causar un fallo masivo en el equipo, sin embargo, la robustez del software impide que falle, lo cual solamente mandará un mensaje "Windows se recuperó de un cierre inesperado" , dando a conocer al usuario que el sistema estuvo a punto de fallar pero este pudo responder ante el error.
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.
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”.
Exactitud
Es la base de un software que funge como un factor externo que se logra a través de los requerimientos funcionales del software y tiene que lograr sus objetivos.
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: Exactitud=Número de Requerimientos − Número de Requerimientos cumplidos.
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:
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
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.
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, por ejemplo 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
1-.Cumple las funciones necesarias
2-.Tienes los diseños (adornos) necesarios para que se haga un software amigable
3-.Sus métodos tienen el mínimo # de errores o ninguno
4-.Sus actualizaciones no afectan a la calidad de software
Ecuación para calcular la funcionalidad
Funcionalidad=(# de métodos*métrica)/#errores
Fácil de Usar
Fácil 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.
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.
Se puede medir de acuerdo al tiempo que se tarde una persona con conocimientos nulos en el sistema.
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”.
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:
% de reutilización = (Software Reutilizado/Software Total)*100 <-Sale división entre 0
La reutilización no es lo mismo que la herencia o la copia del código en algún sistema. 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 notarla 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
Compatibilidad
Es Facilidad para combinar un elemento de software con otro mediante una 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.
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 mas confianza al pedir sus requerimientos, ya que certifica la calidad con la que sus procesos son realizados.
Métrica:
Compatibilidad = Sistemas con los que es capaz de trabajar en conjunto / 1+Número de cambios que requiere el sistema para poder trabajar con otro.
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.
[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[3] (Wikipedia, Calidad de software - Wikipedia, la enciclopedia libre, 2015)
jueves, 2 de abril de 2015
La Calidad del Software
Introducción
Durante el desarrollo de un software, es necesario que este cumpla con ciertos requisitos para que este cumpla con lo solicitado con el cliente, y además, que no tenga problemas para usar el software, para que este seguro que el producto no fallará.
Al cumplirlos, podrá decirse que el programa entregado fue hecho con calidad y dedicación, hablando bien de los desarrolladores del software, que podrán repetir dicho esfuerzo para otros proyectos y ser exitosos.
Un software de calidad es aquel que cumple con los requerimientos del usuario, realizando las tareas solicitados sin complicaciones, permitiendo la resolución del problema en tiempo y forma.
Para que un software sea considerado de calidad, debe cumplir con ciertos requisitos como:
Para que un software sea considerado de calidad, debe cumplir con ciertos requisitos como:
Desarrollo
Exactitud: Fidelidad en la reproducción de un modelo o en la ejecución de alguna cosa que está reglamentada. Para que el software cumpla con este rubro, deberá cumplir sus acciones en tiempo y forma solicitados por el usuario.
Robustez: En desarrollo de software, indica que el programa es capaz de responder ante situaciones no planificadas, que evitarán una falla grave del software.
Extensibilidad: Propiedad del software que le permite ampliar su margen de operaciones sin perder calidad, es decir, si un software pasa de realizar cien procesos sin problemas por minuto a realizar quinientos, deberá de funcionar igual que el anterior.
Reutilización: Es el proceso de creación de sistemas de software a partir de un software existente, en lugar de tener que crear desde el principio. Esta propiedad permite a los siguientes programas desarrollados, tener un proceso de creación corto, lo que permite la eficacia del desarrollo.
Compatibilidad: Se aplica al programa informático que puede funcionar en un ordenador o conjuntamente con otros programas sin necesidad de hacer ninguna modificación, esto es fundamental en un software, ya que permite que su utilización en diversos sistemas sin ningún contratiempo.
Eficiencia: Capacidad de alcanzar un objetivo fijado con anterioridad en el menor tiempo posible y con el mínimo uso posible de los recursos, lo que supone una optimización del software, logrando que no se necesite de mucho tiempo para realizar cada proceso y llegar al resultado lo más rápido posible.
Portabilidad: Capacidad de un programa o sistema de ejecutarse en diferentes plataformas o arquitecturas con mínimas modificaciones. Esta propiedad le permite al software poder trabajar en diversos espacios sin necesidad de adaptarlos al entorno en donde se desarrollo.
Usabilidad: Cualidad de un sistema que permite al usuario una fácil administración del mismo, debido a que sus instrucciones son fáciles de comprender, el entorno gráfico es amigable con el usuario, y sobre todo, el sistema es dinámico, haciendo posible su utilización.
Funcionalidad: Se refiere a la actividad o al conjunto de actividades que pueden desempeñar uno o varios elementos a la vez, obviamente de manera complementaria, en orden a la consecución de un objetivo definido. En un software, se refiere simplemente que este pueda ser usado para el fin para el que fue creado.
Puntualidad: Virtud de coordinarse cronológicamente para cumplir una tarea requerida o satisfacer una obligación antes o en un plazo anteriormente comprometido o hecho a otra persona. En un software, significa que los procesos que haga, no sean tardados y puedan entregar los resultados de la manera más rápida posible.
Puntualidad: Virtud de coordinarse cronológicamente para cumplir una tarea requerida o satisfacer una obligación antes o en un plazo anteriormente comprometido o hecho a otra persona. En un software, significa que los procesos que haga, no sean tardados y puedan entregar los resultados de la manera más rápida posible.
Conclusión
Para un software, los requisitos anteriores son fundamentales para que este sea un producto de calidad, ya que no comprometerá situaciones externas para su funcionamiento correcto, además que siempre funcionará, aunque no trabaje dentro de un sistema conocido o si se modifica su alcance.
Finalmente, sus procesos deben de ser rápidos y exactos, y sobre todo, responder ante cualquier anomalía que se presente, o alguna modificación del mismo. Si el software cumple con los conceptos anteriores, el software podrá ser considerado de calidad.
Referencias
[1] Enciclopedia Larousse (2015) , Larousse, Consultada el 2 de Abril de 2015 URL: http://www.larousse.mx/#a8
[2] Constructores Web Argentina (2010), Software Robustez, Consultada el 2 de Abril de 2015 URL: http://constructoresweb.com/robustez
[3] Fausto Arias (2012) , Ingeniería de Software, Consultada el 2 de Abril de 2015 URL: http://jurifa-ingenieriadesoftware.blogspot.mx/2012/09/reutilizacion-de-software.html
[4] The Free Dictionary (2007), Compatible - Significado, Consultada el 2 de Abril de 2015 URL: http://es.thefreedictionary.com/compatible
[5] WordPress (2008) ,Definición de eficiciencia, Consultada el 2 de Abril de 2015 URL: http://definicion.de/eficiencia/
[6] ALEGSA (2008), ¿Cuál es la definición de Portabilidad (informática)?, Consultada el 2 de Abril de 2015 URL: http://www.alegsa.com.ar/Dic/portabilidad.php
viernes, 27 de marzo de 2015
¿Qué es la calidad?
Introducción
En las industrias, se manejan
mucho las normas de calidad, que regulan que los procesos que se realizan
dentro de ellas, sean efectuados de la mejor manera, para asegurar, la entrega
del producto en tiempo y forma, para que
el cliente tenga la satisfacción de que el resultado de los arduos procesos de
fabricación, ha valido la pena.
Por ello es que existen estas
normas, para asegurar que todas las empresas cumplan con ellas y sus procesos
se realicen de la mejor manera, todas las normas exigen principalmente que en
todos los trabajos que se hagan sean de calidad, pero, ¿Qué es calidad?
Desarrollo
“La calidad puede referirse a
diferentes aspectos de la actividad de una organización: el producto o
servicio, el proceso, la producción o sistema de prestación del servicio o
bien, entenderse como una corriente de pensamiento que impregna toda la
empresa.”[1]
En estricto sentido, calidad
significa superioridad o excelencia de algo o alguien, lo que quiere decir que
un trabajo que se hizo con calidad, será superior a otros trabajos.
Para que un trabajo o proceso sea
realizado con calidad, debe de cumplir ciertos requisitos, ya sea impuestos por
un superior o por una norma vigente. Por ejemplo, en México se utilizan las
Normas Oficiales Mexicanas para casi todos los campos de la industria, si
hablamos en materia de agua, existen seis normas [2] que regulan que:
1-.Sea apta para el consumo de
agua.
2-.Sea apta para ser usada para
labores de riego.
3-.Sea apta para ser usada para
labores de desecho de residuos.
Como se aprecia, la calidad debe
de existir para que se puedan realizar las tareas anteriores de manera
correcta, hablando del agua principalmente, que es vital para todos los seres
vivos, si se llega a omitir algún paso o si este, no se encuentra hecho bajo la
norma, podría afectar a todos ellos, ya que dependen de ella para sobrevivir.
Lo mismo sucede con aspectos
simples como una tarea o proyecto de alguna escuela. Para que estos reciban la
aprobación del profesor, deben de ser entregados de la mejor manera posible,
cumpliendo con aspectos simples como:
· No debe de tener faltas de ortografía
· Debe de tener letra legible
· Se deben de poner referencias
· Debe ser entregado en tiempo y forma
· No debe de estar maltratado
Si cumple con estos requisitos,
podrá decirse que esa tarea o proyecto es de calidad, ya que cumplió con lo
pedido y además, demuestra que dicho alumno que realizo el trabajo puede
realizar trabajos que sean de altas calificaciones.
Un último ejemplo se podría apreciar en la industria de la música, para que un álbum tenga muchas ventas, este debe de tener un buen sonido, no debe de contener fallas, y sobre todo, se tiene que ver el empeño que el artista invirtió para producir el disco, para que pueda decirse, que es un álbum "de calidad".
Conclusión
La calidad debe existir en cualquier
proceso, para que el resultado final sea de calidad, que cumpla con los
requisitos solicitados y que pueda ser apto para la realización de otros
proyectos. Esto implica que al hacer estos trabajos de la mejor manera, se
podrá contar de nuevo con el autor de estos para realizar más tareas de
calidad.
Gracias a ella, podemos disfrutar
de varios productos y servicios, que, antes de ser lanzados al público, su
fabricación tuvo que haber pasado por diversos filtros y controles de calidad,
para que su uso, no tenga ningún problema o comprometa la seguridad del
usuario.
Bibliografía
Suscribirse a:
Entradas (Atom)