Lección 1
Fundamentos
Antes de comenzar debemos tener claro que es un requerimiento. Si vamos al diccionario de la lengua española y buscamos requisito este se define como: Circunstancia o condición necesaria para algo. Pero esta definición se queda muy corta y además muy resumida porque en el campo del desarrollo web un requerimiento es mucho más que eso.
Para entender de forma clara supongamos que vamos a comenzar a generar un desarrollo, lo primero que pensamos es: ¿qué lenguaje vamos a usar?, ¿qué tipo de motor de base de datos usaremos?, ¿qué estilos de CSS usaremos? ¿qué es lo que queremos desarrollar? y así sucesivamente a nuestra cabeza comienzan a llegar ideas, solicitudes, preguntas, condiciones como por ejemplo, queremos que sea azul, queremos que tenga 3 secciones, queremos que tenga un tipo de letra arial y sin percatarlo nosotros mismos estamos realizando requerimientos.
A continuación estableceremos como definición de requisito:
Un requisito de software es una característica que se debe exhibir para solucionar un cierto problema en el mundo real. Se convierte en una combinación compleja de requisitos entregados por parte de los usuarios implicados dentro del desarrollo de la solución, teniendo en cuenta que pueden corresponder a diferentes niveles jerárquicos, ambientes e intereses. Es importante también que cada requisito sea comprobable, pensando también en las implicaciones que esto puede conllevar.
Teniendo claro que un requisito es una característica que debe tenerse para solucionar cierto problema en el mundo real debemos tener en cuenta que hay distintos tipos de requisitos de los cuales hablaremos brevemente, los tipos de requisitos no son excluyentes entre sí, es decir 1 requerimiento puede ser de más de un tipo.
-
Requisito de Producto:
Se refiere a los parámetros que tenemos que buscar solucionar, por ejemplo, el software debe verificar si el número de cédula y la contraseña son válidos para entrar al sistema.
-
Requisito de Proceso:
Estos tipos de requisitos se refieren más a la parte técnica o las herramientas que usaremos para desarrollar el aplicativo, por ejemplo el aplicativo web deberá ser desarrollado en el motor de base de datos Oracle y usando el lenguaje Web Php.
-
Requisitos funcionales:
Hacen referencia a lo que va poder o no hacer el software.
-
Requisitos no funcionales:
Este tipo de requerimiento no hace parte fundamental del software pero son los que obligan a que se actúen para llegar a la solución del mismo, por ejemplo botones de confirmación, maquetado web, entre otros.
-
Características inesperadas:
Este tipo de requerimiento hace referencia a aquellos que no pueden ser tratados por un solo componente del software, un ejemplo de este tipo puede ser el software que tiene que estar online las 24 horas del día, los 365 días del año; para que se logre el ejemplo anterior se tiene que tener en cuenta que se debe tener respaldo de servidor por si se va la luz en donde este está ubicado, se debe tener doble fluido de internet como de luz, se debe organizar dentro del código que las peticiones se hagan a 2 sitios dependiendo de una condición entre muchas otras cosas.
-
Requisitos cuantificables:
Este tipo de requisito se refiere a que en la medida de lo posible todo requisito que se recolecte debe ser medible y se debe poder cuantificar, por ejemplo para un desarrollo web se solicita que el sistema debe ser capaz de manejar 500 solicitudes de compra al mismo tiempo.
-
Requisitos del sistema y requisitos del software:
Los requisitos del sistema hacen referencia a lo mínimo con lo que se puede trabajar el aplicativo, por ejemplo se necesita que se tenga instalado el sistema operativo Windows 7, base de datos Oracle, 4gb de RAM y 500 de disco duro como mínimo. En cambio los requisitos del software hacen referencia al conocimiento que debe tener las personas, las condiciones que debe tener las instalaciones donde funcione y por último los servicios que debe prestar.