domingo, 31 de agosto de 2014

Norma de calidad ISO 9126

Introducción

En esta entrada se describirá lo que es calidad, y cómo ésta influye en la creación de un sistema. Asímismo, se hará mención de la norma de calidad ISO 9125 con todas sus características y sus subcaracterísticas

Desarrollo


Calidad

Existen varias definiciones de "calidad". Una de ellas es que es el conjunto de características de una entidad, que permiten satifacer con necesidades establecidas. Otra menciona que calidad se refiere al grado en el que un conjunto de características que cumple con requisitos. Estas 2 definiciones tienen 2 cuestiones en común: una de ellas es que calidad es un conjunto de normas, y la otra es que son establecidas para cumplir con ciertos requisitos o necesidades para ofrecer un producto con la mejor calidad posible.

Norma de calidad ISO 9126

Antes de pasar a este tema, primero debemos definir lo que es una norma de calidad. Una norma de calidad es un conjunto de estándares que tienen como objetivo conseguir un grado óptimo de orden en la calidad de un producto. Estas normas, en su gran mayoría, son internacionales, es decir, que se aplican en cualquier parte del mundo.

Ahora, sabiendo esto, podemos hablar de la norma ISO 9126. El ISO 9126 es un estándar internacional que se aplica en la industria del software. Fue desarrollado en 1991 y su principal objetivo es proporcionar un esquema para la evaluación de la calidad de un sistema informático.

En esta norma, para cumplir el estado óptimo de calidad, se proponen 6 características con el que todo software debe cumplir.

Funcionalidad

En este apartado están el conjunto de atributos que permiten saber si un software maneja de forma adecuada el conjunto de funciones que satisfagan las necesidad para las cuales fue diseñado, es decir, que cumpla con lo establecido en los requisitos.
  • Adecuación - Presencia de un conjunto de funciones para tareas especificas.
  • Exactitud - Disposición de resultados correctos.
  • Interoperabilidad -Habilidad para la interacción con sistemas especificados.
  • Seguridad - Habilidad para prevenir acceso no autorizado a programas y datos, ya sea accidental o deliberado.
  • Cumplimiento funcional - Capacidad del software para apegarse a normas relacionadas con la funcionalidad.
Confiabilidad

Aquí se refiere a la capacidad del software para mantener su integridad bajo condiciones normales en un cierto periodo de tiempo.
  • Madurez - La frecuencia de falla por fallas en el software.
  • Recuperabilidad - Capacidad para restablecer su nivel de desempeño y recuperar los datos directamente afectados en caso de falla.
  • Tolerancia a fallos - Habilidad para mantener un nivel especificado de desempeño en casos de fallas de software.
  • Cumplimiento de fiabilidad - Capacidad del software para apegarse a normas relacionadas con la fiabilidad.
Facilidad de uso (Usabilidad)

En este apartado están el conjunto de atributos que permiten evaluar el esfuerzo necesario que necesita invertir el usuario para poder usar el software.
  • Aprendizaje- Reconocer el concepto lógico y sus aplicaciones.
  • Comprensión - Entender el concepto lógico y sus aplicaciones.
  • Operatividad -Operación y control del software.
  • Atractividad - Que el software le llame la atención al usuario a través de las interfaces.
Eficiencia

En este apartado se ve la relación entre el nivel de funcionamiento del software y la cantidad de recursos usados.
  • Comportamiento en el tiempo - Son los tiempos de respuesta y procesamiento y en las tasas de rendimientos en desempeñar su función.
  • Comportamiento de recursos - Son las cantidades y tipos de recursos necesarios cuando el software lleva a cabo su función bajo ciertas condiciones.
Facilidad de mantenimiento

En este apartado están el conjunto de atributos que permiten saber el esfuerzo necesario para poder modificar el softare, ya sea para corregir errores o para incrementar la funcionalidad.
  • Estabilidad - es evitar comportamientos anormales en el software..
  • Facilidad de análisis - Es el esfuerzo necesario para el diagnóstico de deficiencias o causas de fallos.
  • Facilidad de cambio - Es el esfuerzo necesario para corregir la falla detectada en el punto anterior.
  • Facilidad de pruebas - Es el esfuerzo necesario para validar el software modificado.
Portabilidad

Aquí se ve la capacidad del software para ser transferido de una computadora a otra sin mayor problema.
  • Capacidad de instalación - Es el esfuerzo necesario para instalar el software en un ambiente determinado.
  • Capacidad de reemplazamiento - Que se pueda usar el software en lugar de otro software especificado en el ambiente de dicho software especificado.
  • Adaptabilidad - Que se pueda adaptar a distintos ambientes, en este caso, sistemas operativos.
  • Co-Existencia - Que pueda existir otro software independiente, en un entorno común, compartiendo recursos comunes con el software evaluado.
Conclusiones

La norma de calidad ISO 9126 nos permite llevar un control de calidad en el sistema que estemos desarrollando, ya que, como son normas establecidas e internacionales, nos garantiza que el producto final sea lo que esperamos y que cumpla con los requisitos establecidos. Sin embargo, su cumplimiento es un tanto dificil, ya que estas normas, como cualquier otra, son muy estrictas y se deben cumplir casi a la perfección.

Bibliografía


Cataldi, Z. (2000). Calidad en la industria del software. agosto 31, 2014, de UNLP Sitio web: http://recursosbiblioteca.utp.edu.co/tesisd/textoyanexos/0053L864e_anexo.pdf

Soto, M. (2012). Concepto de calidad. agosto 31, 2014, Sitio web: http://fabetsia.dmpa.upm.es/solo_alumnos/sp2/Tablon_sp2/TransparenciasCALIDAD06.pdf

Fernandez, A. (2010). Normas de calidad. agosto 31, 2014, Sitio web: http://www.apmarin.com/download/691_cal1.pdf

domingo, 24 de agosto de 2014

Ingeniería de Pruebas

Introducción

En esta entrada se describirá lo que es una prueba, en qué consiste, y qué elementos se necesita para realizarla. Así mismo, se definirá la ingeniería de pruebas, los tipos de pruebas de software, y los elementos del ciclo de vida de un software. Todo, con el fin de dar a conocer la importancia de hacer pruebas a la hora de realizar un sistema informático

Desarrollo


¿Qué es una prueba?

Según la Real Academia Española, una prueba consiste en "experimentar las cualidades de alguien o algo". Sin embargo, una definición más apegada a las cuestiones del software sería "una prueba es la dinámica de la verificación del comportamiento de un programa en un conjunto de casos de prueba contra la del comportamiento esperado". Su objetivo es encontrar los posibles fallos de implementación, calidad o usabilidad de un programa.

Para realizar una prueba, necesitamos detectar defectos en el software, verificar la integración adecuada de los componentes y que todos los requisitos se han implementado correctamente para posteriormente asegurar que los defectos encontrados se han corregido.

¿Qué es la ingeniería de pruebas?

Primero, hay que definir qué es la ingeniería. La ingeniería es el arte de aplicar los conocimientos científicos a la invención, perfeccionamiento y utilización de la técnica industrial en todas sus determinaciones. Esto, con el fin de solucionar los diversas problemáticas de la vida diaria.

Ahora, sabiendo esto y lo que es una prueba, podemos definir a la ingeniería de pruebas como el conjunto de conocimientos que se aplican para determinar los fallos en los componentes y en el funcionamiento de un sistema informático.

Es de suma importancia realizar pruebas en el programa que estemos desarrollando, porque esto permite saber si nuestro producto funciona a la perfección, o si se le tiene que cambiar algunas características.

¿Cuáles son los tipos de pruebas que existen?

Hay 2 tipos principales de pruebas. Las de caja blanca, que se centran en los procesos del sistema, es decir, está enfocado en verificar el código fuente. Y las de caja negra consisten en verificar el exterior del sistema y la entrada de los datos, sin importarnos el proceso y la salida de éstos

Sin embargo, existen más tipos de pruebas de software, de los cuales hablaremos más adelante
  • Pruebas Unitarias
  • Pruebas de Aceptación de Usuario
  • Pruebas de Regresión
  • Pruebas Funcionales
  • Pruebas de Integración
  • Pruebas de Estress
  • Pruebas de Calidad de Código
Ciclo de vida de un software

Existen 5 etapas por las que todo sistema informático pasa en su proceso de desarrollo:
  • Análisis: En esta etapa definimos de forma detallada cual es la problemática a resolver, verificando el entorno en el cual se encuentra dicho problema, para que así se obtenga la información necesaria y suficiente para diseñar su solución
  • Diseño: Aquí determinamos la estrategia que se va a utilizar para resolver el problema que hemos planteado en la etapa de análisis.
  • Desarrollo: Ya que nos hemos planteado la problemática y cómo la vamos a solucionar, es hora de desarrollar el sistema que satisfaga las necesidades de nuestro cliente. Aquí lo que se hace es escribir el código a la vez de que se diseña la base de datos y las interfaces gráficas
  • Pruebas: Después de desarrollar nuestro sistema, hay que hacerle sus respectivas pruebas, para así comprobar que no hayan errores lógicos o de interfaz.
  • Implementación: Ya que se le han hecho las correspondientes pruebas, es hora de entregar el producto final al cliente. Para esto, debemos estar asegurados de que nuestro sistema funcione a la perfección.


Conclusiones

La ingeniería de pruebas es de mucha utilidad a la hora de realizar nuestro software, ya que nos permite verificar si éste funciona correctamente o se le tiene que modificar algo para lograr lo mencionado. Sin embargo, también es importante seguir correctamente las etapas de desarrollo, ya que, de no hacerlo, podemos desarrollar nuestro producto de una manera muy desordenada e ineficaz.

Bibliografía


Jaramillo, E. (2011). De los problemas a los programas. agosto 24, 2014, de Universidad Nacional de Colombia Sitio web: http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060024/Lecciones/Capitulo%20I/problemas.htm

Adán, V. (2012). Pruebas de caja negra. agosto 24, 2014, Sitio web: http://www.globetesting.com/2012/08/pruebas-de-caja-negra/

Mejía, F. (2008). Definiciones de ingeniería. agosto 24, 2014, de Escuela de ingeniería de Antioquia Sitio web: http://fluidos.eia.edu.co/lecturas/ingenieria.html

Montes, R. (2013). Pruebas de software. agosto 24, 2014, Sitio web: http://www.ecured.cu/index.php/Pruebas_de_software

viernes, 2 de mayo de 2014

Realidad aumentada y la base de datos

Introducción

En este trabajo se explicará la definición de realidad aumentada y cómo ésta puede cambiar nuestro estilo de vida. Asímismo, se explicará la relación que puede llegar a tener con las bases de datos y cómo esta relación puede facilitarnos la realización de ciertas tareas de la vida diaria.

Desarrollo

La realidad aumentada, podríamos decir, es una mezcla entre lo real y lo virtual. A menudo es confundido con la realidad virtual; sin embargo, es un término muy diferente que diferencia a la realidad aumentada con el hecho de que la realidad virtual se aisla de lo real.

El objetivo de la realidad aumentada es ampliar, mejorar o resaltar la realidad del mundo físico mediante la aplicación de tecnología, por lo general video o imagen.

Actualmente la realidad aumentada está presente en varios aspectos de la vida cotidiana, tales como educación, entretenimiento, navegación y medicina. Por ejemplo, en la arquitectura se puede usar para visualizar un futuro edificio; o en la navegación puede ser usada para simular vuelos o trayectos.

Un proyecto muy conocido que utiliza esta tecnología son los Google Glass. Estos lentes, básicamente, funcionan como un smartphone, con la diferencia de que es controlado mediante acciones de voz (aunque también tiene un sensor que detecta gestos). Actualmente se puede adquirir, con un costo de 1500 dólares (aproximadamente unos 18000 pesos). Sin embargo, debido a la alta demanda, esta venta se hace bajo pedido y sólo en ciertos periodos del año.

Ya explicado esto, podemos comenzar a describir la relación que puede tener la realidad aumentada con las bases de datos. Recordemos, antes que nada, que las bases de datos son aquellas plataformas que almacenan datos y que pueden ser consultados o modificados en cualquier momento.

Como se mencionó anteriormente, la realidad aumentada consiste en mejorar nuestra visión del mundo a través de aplicaciones y piezas de hardware. Estas piezas de software pueden ser una cámara o un sensor de movimiento, por ejemplo.

Sabiendo esto, se puede crear una aplicación que despliegue información acerca de un cierto lugar con tan sólo enfocar la cámara hacia él. Algo así como las aplicaciones que detectan códigos QR, pero sin necesidad de tal. ¿Cómo se obtendría, entonces, esa información? A través de una base de datos, la cual, es usada por la aplicación.

Otra aplicación que se acaba de desarrollar es una de reconocimiento facial que asocia las caras a una base de datos mediante una tecnología de realidad aumentada, tiene un gran potencial para los anunciantes. Sin embargo, esta aplicación podría ser usada para fines maliciosos, ya que detecta cualquier rostro y, además, interfiere en la privacidad de la gente por la obtención de datos personales.

También las bases de datos pueden estar presentes en aplicaciones para navegación. Pongamos un ejemplo. Si combinaramos el uso de los Google Glass y la famosa aplicación Google Maps, sería de muchisima utilidad el resultado, porque podríamos visualizar el camino que debemos tomar para llegar a algún destino sin necesidad de voltear a ver nuestro dispositivo GPS, así como información en tiempo real de las condiciones del camino, el clima, la máxima velocidad permitida, etc.

Conclusión

Como podemos ver, las aplicaciones que implican el uso de una cámara forzosamente dependen de una base de datos, ya que en ellas se almacena la información del objeto al que se esté enfocando. Sin embargo, la implementación de esta tecnología sin la seguridad suficiente, podría ser un gravísimo error ya que, entonces, podríamos obtener datos de cualquier cosa, ya sea domicilio o persona. Es cuestión de esperar, quizás, algunos años para que se perfeccione esta tecnología y pueda ser implementada sin problema alguno,

Referencias

jueves, 10 de abril de 2014

Diccionario de datos

Introducción

Para especificar las tablas de una base de datos usamos un diccionario de datos. Éste nos describe el nombre de los atributos, el tipo de dato que acepta y sus modificaodres (clave primaria, foránea, auto incrementa, etc.). El diccionario de datos sirve para que cualquier persona pueda entender cómo está compuesta nuestra base de datos.

Desarrollo

Base de datos 1 "Seguros"

Base de datos 2 "Agencia"

Base de datos 3 "Partidos"

Base de datos 4 "Fábrica"

Base de datos 5 "Tienda"

Base de datos 6 "Viaje"

Base de datos 7 "Olimpiadas"

Base de datos 8 "Torneo Grand Slam"

Base de datos 9 "Cine"

Base de datos 10 "Muebles"

domingo, 30 de marzo de 2014

Creación de bases de datos con MySQL

Introducción

MySQL es uno de los gestores de bases de datos más utilizados en la actualidad. Funciona por medio del modelo relacional, es decir, por medio de esquemas y por sencillos comandos que se tienen que escribir, ya sea en la consola de MySQL o en el Query Browser. Además, se pueden hacer borrar bases de datos y tablas, hacer consultas en tablas, agregar, borrar y cambiar registros, etc. La última versión de MySQL es la 5.6.16.

Desarrollo

Base de datos 1 "Seguros"

Base de datos 2 "Agencia"

Base de datos 3 "Partidos"

Base de datos 4 "Fábrica"

Base de datos 5 "Tienda"

Base de datos 6 "Viaje"

Base de datos 7 "Olimpiadas"

Base de datos 8 "Torneo Grand Slam"

Base de datos 9 "Cine"

Base de datos 10 "Muebles"

domingo, 23 de marzo de 2014

Normalización

Introducción

La normalización de una base de datos consiste básicamente en aplicar algunas reglas o formas a las relaciones que hemos obtenido de nuestros diagramas Entidad-Relación. Existen 5 formas normales; sin embargo, en este ejercicio sólo aplicaremos las 3 primeras formas normales. El proceso de normalización tiene como objetivo evitar la redundancia de los datos, disminuir los problemas al actualizar registros y proteger la integridad de los datos.

Desarrollo

Diagrama 1


Coche (ID_cliente, ID_coche, Número de accidentes)
Cliente(ID_cliente)

Diagrama 2


Cliente (Teléfono, dirección, DNI_cliente, nombre, apellido_paterno, apellido_materno, matrícula)
Coche nuevo (Modelo, color, matrícula_nuevo, marca, número de unidades, DNI_mecánico)
Coche usado (Modelo, color, matrícula_usado, marca, número de kilómetros, DNI_mecánico)
Mecánico (DNI_mecánico, nombre, apellido_paterno, apellido_materno, salario, fecha_de_contratación)

Diagrama 3


Jugador (ID_jugador, número de partidos)
Partido (ID_jugador, Resultado)
Juega (estadísticas de cada jugador en un partido)

Diagrama 4


Fábricas (Número de fábrica, teléfono, artículos, número de artículo)
Artículo (Número de artículo, existencias, descripción)
Cliente (Número de cliente, límite de crédito, saldo, dirección de envío, número de artículo)
Pedido (Número de cliente, número de artículo, fecha, cantidad, dirección de envío, número de cliente)

Diagrama 5


Proveedor (RUT_proveedor, nombre, dirección, teléfono, dirección, ID_producto)
Producto (Categoría, precio actual, nombre, ID_producto, stock)
Cliente (RUT:cliente, teléfono, nombre, dirección, ID producto)
Venta (ID_venta, cantidad vendida, fecha, descuento, precio, monto final, RUT cliente)

Diagrama 6


Vuelo sin escalas (Fecha, modelo de avión, plazas vacías, número de vuelo)
Vuelo con escalas (Fecha, modelo de avión, plazas vacías, número de orden, número de vuelo)
Programa de vuelo (Número de vuelo, días de existencia, línea aérea, código)
Aeropuerto (Nombre, ciudad, código, país, estado de la pista, matrícula)
Avión (Matrícula, modelo de avión, número de plazas)

Diagrama 7


Complejo deportivo monodeportivo (Localización, jefe de organización, área total ocupada, fecha)
Complejo deportivo polideportivo (Localización, jefe de organización, área total ocupada, área para cada deporte, fecha)
Evento (Fecha, duración, número de participantes)
Comisionario (Fecha)
Mantenimiento (Equipamiento)

Diagrama 8


Jugador (Nacionalidad, fecha de entrenamiento, entrenador, ganancias)
Encuentro (Premio de consolación, premio del ganador, estadio, entrenador)
Torneo (Modalidad, país, año, arbitro, estadio)

Diagrama 9


Cine (Nombre_cine, dirección, teléfono, número_sala)
Sala (Nombre_sala, número_sala, número de butacas, día_función)
Función (Hora, día_función, descripción_promoción, ID_Película)
Promoción (Descripción_promoción, descuento)
Película (Género, título, duración, subtítulos, clasificación, resumen, año de producción, ID_Película, país de origen, URL, idioma original, nombre_elenco)
Elenco (Nombre_elenco, nacionalidad, número de películas)
Opinión (Comentario, nombre persona, fecha, edad, calificación, ID_Película)

Diagrama 10



Mueble (Nombre_mueble, precio)
Una pieza (ID_pieza)
Varias piezas (ID_pieza, nombre_mueble)
Estante (Altura, pasillo, ID_pieza)

domingo, 9 de marzo de 2014

Modelo relacional

Introducción

Recordemos que para pasar del modelo entidad-relación al modelo relacional, hay que identificar varios puntos muy importantes: las entidades, las relaciones, los atributos, las claves (tanto primarias como foráneas). Asímismo, debemos tomar en cuenta que existen 2 tipos de identidades: las fuertes y las débiles. La forma en la que se representan las entidades en el modelo relacional depende de qué tipo de entidad sea.

Desarrollo

Diagrama 1


Coche (Número de accidentes)
Cliente
Puede tener (Número de accidentes)

Diagrama 2


Cliente (Teléfono, dirección, DNI, nombre, apellidos)
Coche nuevo (Modelo, color, matrícula, marca, número de unidades)
Coche usado (Modelo, color, matrícula, marca, número de kilómetros)
Mecánico (DNI, nombre, apellido, salario, fecha de contratación)
Compra (Matrícula, DNI ciente)
Repara (DNI mecánico, matrícula)

Diagrama 3


Jugador
Partido (Número de partidos, resultado)
Juega (estadísticas de cada jugador en un partido)

Diagrama 4


Fábricas (Número de fábrica, teléfono, artículos)
Artículo (Número de artículo, existencias, descripción)
Cliente (Número de cliente, límite de crédito, saldo, dirección de envío)
Pedido (Número de cliente, número de artículo, fecha, cantidad, dirección de envío)
Distribuye (Número de fábrica, número de artículo)
Compra (Número de artículo, número de cliente)
Hace (Número de cliente, número de artículo)

Diagrama 5


Proveedor (RUT, nombre, dirección, teléfono, dirección)
Producto (Categoría, precio actual, nombre, ID, stock)
Cliente (RUT, teléfono, nombre, dirección)
Venta (ID, cantidad vendida, fecha, descuento, precio, monto final)
Tiene (RUT proveedor, ID producto)
Compra (ID producto, RUT cliente)
Efectúa (RUT cliente, ID venta)

Diagrama 6


Vuelo sin escalas (Fecha, modelo de avión, plazas vacías)
Vuelo con escalas (Fecha, modelo de avión, plazas vacías, número de orden)
Programa de vuelo (Número de vuelo, días de existencia, línea aérea)
Aeropuerto (Nombre, ciudad, código, país, estado de la pista)
Avión (Modelo, número de plazas)
Pertenece (Modelo de avión, número de vuelo)
Aterriza (Número de vuelo, código)
Aterriza (Código, modelo)

Diagrama 7


Complejo deportivo monodeportivo (Localización, jefe de organización, área total ocupada)
Complejo deportivo polideportivo (Localización, jefe de organización, área total ocupada, área para cada deporte)
Evento (Fecha, duración, número de participantes)
Comisionario ()
Mantenimiento ()
Celebra (Localización, fecha)
Tiene (Fecha)
Necesita (Fecha, equipamiento)

Diagrama 8


Jugador (Nacionalidad, fecha de entrenamiento, entrenador)
Encuentro (Premio de consolación, premio del ganador, estadio)
Torneo (Modalidad, país, año, arbitro)
Juega (Nacionalidad, estadio, ganancias)
Tiene (Estadio, año)

Diagrama 9


Cine (Nombre, dirección, teléfono)
Sala (Nombre, número, número de butacas)
Función (Hora, día)
Promoción (Descripción, descuento)
Película (Género, título, duración, subtítulos, clasificación, resumen, año de producción, identificador, país de origen, URL, idioma original)
Elenco (Nombre, nacionalidad)
Opinión (Comentario, nombre de persona, fecha, edad, calificación)
Contiene (Nombre cine, número)
Celebra (Número, día)
Tiene (Día, descripción)
Exhibe (Identificador, día)
Posee (Identificador, nombre elenco, número de películas)
Puede tener (Nombre elenco, nombre de la persona)

Diagrama 10


Mueble (Nombre, precio)
Una pieza (Identificador)
Varias piezas (Identificador)
Estante (Altura, pasillo)
Está formado (Nombre, identificador)
Están ubicados (Identificador, estante)

domingo, 23 de febrero de 2014