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.