Tecnología y Synergix

Tipos de requisitos: Funcional vs. No Funcional

Posteado por: Iván Garcerant en: 7-07-08

Generalmente hablamos en este blog de los llamados sistemas intensivos en software, donde la funcionalidad esta provista principalmente por la presencia de software apropiadamente programado. Es decir, que las características de esta clase de sistema se encuentran implementadas por medio de la escritura, compilación y ejecución de líneas de código.

Cuando hablamos de una característica requerida de la cual se sabe que va a ser satisfecha por medio de la adición de un subsistema o bloque de código en el software, entonces se dice que estamos ante un requisito funcional, por cuanto es un requisito que denota una funcionalidad del sistema.

Entonces, para el glosario:

Requisito Funcional: característica requerida del sistema que expresa una capacidad de acción del mismo – una funcionalidad; generalmente expresada en una declaración en forma verbal.

Por otra parte, no todo lo que los clientes nos van a solicitar es funcionalidad pura; por el contrario ellos desean otras cualidades, si se quieren generalidades, que no son objeto de codificación si bien es cierto que pueden llegar a afectar a esta.

Llamamos requisito no funcional a todas las exigencias de cualidades que se imponen al proyecto: exigencias de usar un cierto lenguaje de programación o plataforma tecnológica, por ejemplo. Un requisito no funcional es una característica ya sea del sistema, del proyecto o del servicio de soporte, que nos es requerida junto con la especificación del sistema pero que como ya dije, no se satisface añadiendo código, sino cumpliendo con esta como si de una restricción se tratara.

Ahora, como para el glosario:

Requisito no funcional: característica requerida del sistema, del proceso de desarrollo, del servicio prestado o de cualquier otro aspecto del desarrollo, que señala una restricción del mismo.

Según el tipo de sistema que estemos desarrollando, los requisitos funcionales serán mejor representados en un documento o en un caso de uso; en tanto que el tamaño del proyecto será lo que haga la diferencia entre tener un documento especifico o un anexo de la visión del sistema.

Recordemos que el objetivo de la ingeniería del software es el desarrollo de sistemas apegados a las necesidades del cliente, pero también ajustados a otros criterios, como el modelo de negocio, los recursos disponibles y el tiempo de entrega. Es obvio espero, que la ingeniería del software no solo ha de cumplir con la funcionalidad (escribir código ajustado a los requisitos funcionales) sino también con las cualidad suplementarias (requisitos no funcionales) o de lo contrario no cumplirá con su misión: desarrollar el software que se necesita en el momento y condiciones que se tienen disponibles; o dicho de otra manera, desarrollar software de calidad.

12 comentarios para "Tipos de requisitos: Funcional vs. No Funcional"

[...] sistemas deben efectuar operaciones automáticas en determinados momentos; y siendo esto un requisito funcional obvio, resulta de interés desarrollar alguna forma de capturar dicho requisito en el modelo de [...]

Muchísimas gracias por este post!! soy estudiante de Ingeniería informática y llevo arrastrando esta duda desde hace ya un tiempo (y ha quedado totalmente solventada) :D
Gracias de nuevo.
Un saludo.

Muy aclarador, gracias!

¿Que el l Sistema de informacion a realizar sea Web es un requisito no funcional. ?

Yo lo consideraría como no-funcional.

En general, las restricciones de plataforma o lenguaje, son consideradas requisitos no funcionales. Igual pasa con el idioma de la interfaz o el esquema de colores para una pantalla.

Gracias por tu post, me fue muy util para comprender mejor esto de los requisitos Funcionales y No Funcionales, fue muy claro y preciso.

Creo que estos conceptos son muy importantes a la hora de hacer sistemas grandes y para que si el proyecto crece o necesita amplirase no se nos complique y se nos salga de las manos.

Hola!
Q buena explicacion de los requisitos
la verdad tenia muchas dudas
y qdaron todas aclaradas

muchas gracias por la informacion me servio de mucho

Buenas! Me gusta el post que habeis creado, muchas gracias. Pero tengo una duda.
Si tu proyecto es el de una aplicacion para controlar los libros de una biblioteca.
Por ejemplo: si el usuario tiene un limite de libros a alquilar. es funcional o no funcional?
Y si el bibliotecario es el responsable de poner cuantos libros hay en la biblioteca es funcional o no?

Muchas gracias (se nota demasiado que tengo que hacer este ejercicio para clase no?) jajajajaj

Yo diría que es funcional. Se puede ver como una función que hace respetar una regla de negocio. Además es bastante fácil expresar esta restricción en nuestros casos de uso y ciertamente hay que escribir un código apropiado para hacerla respetar.

cuales son los 7 requerimiento NO FUNCIONALES?

Quizás te refieras al modelo de calidad tradicional del software. Si ese es el caso, visita mi post Modelo de Calidad Tradicional del Software

Escribe un comentario