jueves, 18 de junio de 2015

Ingeniería de Requisitos

Hola a todos, aquí dejando un nuevo aporte.

Antes de empezar cómo comentario personal, la Ingeniería de Requisitos dentro la rama de software constituye el 40% del trabajo del equipo que desarrolla una determinada solución de software, ese porcentaje lo he podido estimar en base a la experiencia que tengo.

Primero vamos a definir lo que es un Requisito, existen muchas definiciones, yo me quedaré con la siguiente: "Es una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo".

¿Qué es la Ingeniería de Requisitos?
La Ingeniería de Requisitos es una rama de la ingeniería de software que se encarga de la captación de las necesidades del cliente, definirlas, especificarlas y gestionar los requisitos.

Características

  • Proceso sistemático: evolutivo (cambia progresivamente) y de negociación (proceso por el cual las partes interesadas resuelven conflictos, acuerdan líneas de conducta, buscan ventajas individuales o colectivas, procuran obtener resultados que sirvan a sus intereses mutuos). 
  • Dura todo el proceso de desarrollo de software (muchos creen que sólo dura antes de empezar a desarrollar el software).
  • Especificación correcta y completa de los requisitos (es muy importante).
  • El producto final es el documento de especificación de requisitos.
  • Los requisitos especifican el "que" debe hacer el SW, no el como.



NOTA: Las necesidades se descubren los requisitos se inventan.

Proceso de Gestión de Requisitos
Como comentamos la Ingeniería de Requisitos es un proceso que dura todo el proceso de desarrollo del software.



Importancia de la Ingeniería de Requisitos

  • Se da durante todo el proceso de desarrollo de software.
  • Para desarrollar algo, es necesario primero entender ese algo.
  • El software puede funcionar, pero no sirve si no satisface al cliente.
  • Gestiona las necesidades del proyecto de software.
  • Un error de requisitos cuesta entre 20 y 50 veces más si es descubierto en las etapas finales del proyecto.
  • Tiene valor contractual (se tiene que cumplir).
  • Sin los requisitos no se puede:
    1. Saber el objetivo
    2. Probar el SW.
    3. Medir la productividad
    4. Hacer estimaciones
    5. Satisfacer al cliente


Dificultades de la Ingeniería de Requisitos
  • Se piensa que es una tarea trivial: poco tecnológica, pérdida de tiempo.
  • Se trabaja con personas (complejidad) (se puede generar ambigüedades al momento de expresar).
  • Muchos estudios determinan que los problemas de la ingeniería de software tienen su origen en la ingeniería de requisitos.
  • Los requerimientos pueden variar a lo largo del proyecto.
  • Muchas veces la cantidad de requerimientos son difíciles de manejar.

Existen diferentes punto de vista lo cual genera diferentes documentos que ayudarán a la construcción final del software.


Niveles de los requisitos
  • Requisitos de usuario 
    1. Definición no estructurada.
    2. Sin mucho nivel de detalle. 
    3. Principalmente texto. 
  • Requisitos del software 
    1. Definición estructurada.
    2. Nivel detallado.
    3. Texto, diagramas (modelos).


Requisitos de software
  • Especificación detallada de “QUE” debe hacer el sistema, no el “Como”. 
  • Se elabora en base al análisis de la información recogida. 
  • Son la base para el diseño e implementación del software. 
  • No es una tarea fácil, requiere organizar documentación y personas.

Tipos de requisitos
Dentro de esta clasificación me centraré en los que se trabajan frecuentemente en proyectos/soluciones de software.
  • Requisitos funcionales: definen las funciones que el sistema será capaz de realizar. Es importante que se describa el ¿Qué? funciones debe tener el sistema y no el ¿Cómo? se deben hacer esas funcionalidades.
    1. Requisitos de operación: por ejemplo: el sistema debe permitir al usuario gestionar los datos del cliente (crear, modificar y eliminar)
    2. Requisitos de información: por ejemplo: los datos del cliente que el sistema debe manejar son: nombres, apellidos, DNI, dirección y teléfono.
  • Requisitos no funcionales: definen restricciones a los requisitos funcionales (dan limites al sistema), por ejemplo: 
    • Consumo de recursos: el sistema debe permitir almacenar cien mil transacciones en un día.
    • Rendimiento: al operar el software el tiempo de respuesta a una consulta de artículos no debe superar los 0,5 segundos. 
    • Fiabilidad y disponibilidad: la posibilidad de fallo de nivel uno del software debe ser menor al 0,01%, el sistema no debe parar más de 5 horas al mes y nunca más de 30 minutos seguidos. 
    • Manejo de errores: el sistema deberá mostrar un mensaje explicativo ante un error de ingreso de datos del usuario.
    • Requisitos de interfaz: en la interfaz del software el precio del producto debe mostrarse en la parte superior izquierda.
    • Restricciones: el software debe presentar el precio de los productos con dos decimales. 
    • Seguridad: al operar el software el envío de mensajes debe estar cifrado.
  • Requisitos inversos: definen que es lo no debe hacer la aplicación

Atributos descriptivos de requisitos de software

  • Atributos automáticos 
    1. Identificador.
    2. Autor.
    3. Fecha de creación. 
  • Atributos obligatorios: 
    1. Tipo de requisito.
    2. Estado de requisito. 
    3. Descripción del requisito.
  • Atributos opcionales
    1. Nombre corto
    2. Fuente
    3. Necesidad 
    4. Prioridad 
    5. Estabilidad 
    6. Complejidad 
    7. Coste 
    8. Condiciones de error 
    9. Restricciones
A continuación muestro una plantilla de requisitos, pueden diseñarla a su gusto.


Espero les haya servido de mucho este post, su amigo Carlos Z.

lunes, 8 de junio de 2015

Eliminar mensaje de Windows 7 "Esta copia de Windows no es original"

Hola a todos aquí trayendo un nuevo aporte para aquellos que tienen al igual que yo una copia pirata en su laptop o desktop de Windows 7 y les aparece el siguiente mensaje "Esta copia de Windows no es original" o "This copy of windows is not genuine", vamos con los pasos a seguir.

1) Ingresar a su computador como administrador o con algún usuario que tenga esos privilegios de poder realizar cambios en el sistema.

2) Entrar a la consola para ello sigan los siguientes pasos: Inicio -  escribir la palabra "cmd" y luego presionar la tecla Enter, inmediatamente aparecerá la consola.



Si ingresaste con algún usuario que tiene privilegios de administrador debes seguir el siguiente paso extra. Click derecho sobre el icono de cmd y dar click sobre la opción "Run as administrator" o "Ejecutar como Administrador"




3) Digitar en la consola el siguiente comando: SLMGR -REARM (sólo trabaja sobre plataformas de 32 bits, algunas veces agarra sobre plataformas de 64 bits, a mi me ha funcionado sobre mi plataforma de 64) y luego dar click sobre el botón OK que aparecerá.




5) Reinicia tu computador

6) Quita la opción de actualizaciones de forma automática.

Hasta la proxima su amigo Carlos Zacarías.

lunes, 25 de mayo de 2015

Cerveza Artesanal

Estimados amigos,

Para los que les gusta tomar de vez en cuando su cervecita en alguna ocasión especial, acabo de encontrarme este sitio que está bien chvre, espero les agrade --> Cerveza artesanal

domingo, 22 de febrero de 2015

Instalar Ruby y MySQL en Windows 8 de 64 bits

Hola a todos, hace tiempo que no escribía un post, bueno aquí trayéndoles un nuevo aporte. Esta vez la instalación de Ruby y MySQL de 64 bits sobre una plataforma Windows 8. 

Algunos pensarán que es una labor sencilla su configuración como con otros lenguajes de programación cuando se instalan en windows, pero no es así porque se tiene que tener mucho cuidado con algunas sentencias. Caso contrario es Linux, allí la instalación y configuración de Ruby y MySQL es muy sencillo.


Bien manos a la obra.


A continuación los pasos, aunque algunos no los detallaré porque son muy fáciles de cumplir

1) Ruby: Descargar el instalador de Ruby de 64 bits de su página Web oficial (http://rubyinstaller.org/downloads/). Hacer doble click e instalar.

Sólo un detalle, al momento de la instalación cuando te pide en qué carpeta se instalará, marca todas las opciones.




2) Agregar un fuente de descargas a ruby: Ruby ya posee una fuente de descargas que es https://rubygems.org, pero por razones que aún desconozco no funciona correctamente, así que debemos digitar la siguiente sentencia en nuestra consola: gem sources -a http://rubygems.org. Esta sentencia agregará el mismo repositorio pero eliminando la transferencia segura de hipertexto.

3) DevKit: Descargar el instalador de 64 bits del DevKit de la página Web de Ruby (http://rubyinstaller.org/downloads/). Como recomendación antes de instalar el DevKit crea una carpeta con el nombre DevKit, donde se extraerán tus archivos del DevKit y sigue las instrucciones de la página Web https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

4) MySQL: Descargar el instalador de 64 bits de MySQL de su página Web oficial (http://dev.mysql.com/downloads/mysql/5.5.html#downloads). Instalarlo normalmente.




5) MySQL-connector: Descargar el instalador de 64 bits de MySQL de su página Web oficial (http://dev.mysql.com/downloads/connector/c/). Instalarlo normalmente.



6) Instalación de paquete MySQL2 en Ruby: Para este caso se deberá aplicar la sentencia gem install mysql2 --platform=ruby -- --with-mysql-dir='"director donde se encuentra instalador mysql-connector'"

Las complicaciones son dos cuestiones que he mencionado: primero porque no funciona la ruta https://rubygems.org, si viene por defecto en la instalación y cuando una la coloca la url en el navegador funciona correctamente y la segunda se encuentra en el paso 6, que son las comillas simples seguido de las comillas dobles que marcan la ruta del directorio donde se encuentra instalado el mysql-connector. Muchas personas no le colocan las comillas simples y dobles y el gem de Ruby no logra distinguir cual es la ruta.

Espero les sirva mucho este aporte, actualmente vengo trabajando ruby y mysql de 64 bits normalmente en Windows 8, otros foros indican que no es posible instalar los software de 64 bits pero yo si lo he logrado.

Hasta la próxima Carlos Zacarías

viernes, 2 de enero de 2015

Problemas de instalar Ubuntu Linux 14.04 LTS sobre una Asus X550L

Estimados amigos, para aquellos que tienen laptops marca Asus modelo X550L y se han decidido por instalar la distribución de linux Ubuntu versión 14.04 LTS (versión recomendable), aquí traigo algunas soluciones para aquellos problemas que se hayan podido encontrar en el camino cuando terminaron de instalarlo.

Instalar correctamente el mouse

Abre un terminal y coloca las siguientes sentencias:
  • Editaremos el archivo GRUB --> sudo gedit /etc/default/grub
  • Encuentren la línea --> GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  • Modificar la linea, la cual debe quedar de la siguiente manera --> GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.proto=bare"
  • Guardar y cerrar el editor de textos
  • Correr la siguiente línea en el terminal --> sudo update-grub
  • Reiniciamos nuestro computador corriendo la siguiente línea en el terminal --> sudo reboot

Instalar el Wirelles

Al momento de la instalación de Ubuntu Linux no se logra instalar correctamente el wirelles pero si la interface eth0 (cable de red) lo cual nos permitirá acceder a Internet momentáneamente para realizar nuestras actualizaciones. Para este bug dejo un par de vídeos que me  ayudaron a configurar mi Wirelles


Bloquear el touchpad

Para aquellas personas que les dificulta trabajar con el touchpad, les dejo la solución.

Abran un terminal y escriban la siguiente línea de comandos para desactivar el touchpad --> sudo modprobe -r psmouse

Si desean luego activarlo --> sudo modprobe psmouse

Ahora mismo tengo problema con el bluetooth y siendo sincero no encuentro solución alguna sino esperar que se actualice un nuevo kernel y parchen este bug. He tratado de conseguir toda la ayuda posible y no lo he conseguido, todas la soluciones que aparecen en blog, foros no funcionan en la marca Asus en el modelo X550L.

Si ustedes ya lo consiguieron excelente, pero por favor no intenten instalar los paquetes deb que muestra la solución de la página Web --> http://askubuntu.com/questions/566980/bluetooth-doesnt-work-in-asus-x550l, lo que harán será actualizar su kernel a algo que les traerá mayores complicaciones tanto con el wirelles y otros componentes.

Si más que decir un saludo, su amigo Carlos Z.