
Una especificación funcional (también, especificación funcional , especificaciones , documento de especificaciones funcionales (FSD) , especificación de requisitos funcionales ) en ingeniería de sistemas y desarrollo de software es un documento que especifica las funciones que un sistema o componente debe realizar (a menudo forma parte de una especificación de requisitos) (ISO/IEC/IEEE 24765-2010). [ 1 ]
La documentación suele describir las necesidades del usuario del sistema, así como las propiedades requeridas para las entradas y salidas (por ejemplo, del sistema de software ). Una especificación funcional es la respuesta más técnica a un documento de requisitos correspondiente, como el documento de requisitos del producto (PRD) . De este modo, recoge los resultados de la fase de análisis de requisitos . En sistemas más complejos, las especificaciones funcionales suelen estar anidadas en varios niveles, por ejemplo, a nivel de sistema, de módulo y de detalles técnicos.
Descripción general
Una especificación funcional no define el funcionamiento interno del sistema propuesto; no incluye la especificación de cómo se implementará la función del sistema.
Un requisito funcional en una especificación funcional podría indicarse de la siguiente manera:
- Cuando el usuario hace clic en el botón Aceptar, el cuadro de diálogo se cierra y el foco vuelve a la ventana principal en el estado en que se encontraba antes de que se mostrara este cuadro de diálogo.
Este requisito describe la interacción entre un agente externo (el usuario ) y el sistema de software. Cuando el usuario introduce información en el sistema haciendo clic en el botón Aceptar, el programa responde (o debería responder) cerrando la ventana de diálogo que contiene dicho botón.
Temas de especificación funcional
Objetivo
Las especificaciones funcionales tienen múltiples propósitos. Uno de los principales en los proyectos de equipo es lograr cierto consenso sobre los objetivos del programa antes de dedicar tiempo a escribir el código fuente y los casos de prueba , seguido de un período de depuración . Por lo general, este consenso se alcanza tras una o varias revisiones por parte de las partes interesadas del proyecto, después de haber negociado una solución rentable para cumplir con los requisitos del software.
- Para que los desarrolladores sepan qué construir.
- Para que los evaluadores sepan qué pruebas deben ejecutar.
- Para que las partes interesadas sepan qué van a obtener.
Proceso
En el ciclo de vida ordenado de la ingeniería de software industrial ( modelo en cascada ), la especificación funcional describe lo que debe implementarse. A continuación, el documento de arquitectura del sistema describe cómo se implementarán las funciones utilizando un entorno de software seleccionado. En el desarrollo de sistemas prototípicos no industriales, las especificaciones funcionales suelen redactarse después del análisis de requisitos o como parte del mismo.
Cuando el equipo acuerda que se ha alcanzado un consenso sobre la especificación funcional, esta se declara "completa" o "aprobada". Posteriormente, el equipo de desarrollo y pruebas de software suele escribir el código fuente y los casos de prueba utilizando la especificación funcional como referencia. Durante las pruebas, el comportamiento del programa se compara con el comportamiento esperado, tal como se define en la especificación funcional.
Métodos
Un método popular para redactar un documento de especificaciones funcionales consiste en dibujar o renderizar esquemas sencillos o capturas de pantalla de la interfaz de usuario con un diseño gráfico preciso. Una vez completado este proceso y aprobados los ejemplos de pantalla por todas las partes interesadas, se pueden numerar los elementos gráficos y añadir instrucciones escritas para cada número. Por ejemplo, en una pantalla de inicio de sesión, el campo de nombre de usuario puede etiquetarse con el número '1' y el de contraseña con el '2'. A continuación, se puede indicar cada número por escrito para que lo utilicen los ingenieros de software y, posteriormente, para las pruebas beta, garantizando así que la funcionalidad sea la prevista. La ventaja de este método es que permite añadir infinidad de detalles adicionales a los ejemplos de pantalla.
Ejemplos de especificaciones funcionales
Tipos de especificaciones de desarrollo de software
Véase también
Referencias
- ↑ ISO/IEC/IEEE 24765:2010 Ingeniería de sistemas y software — Vocabulario
Enlaces externos
- Especificaciones funcionales sin dolor, serie de 4 partes de Joel Spolsky
- Ingeniería de sistemas
- Documentación del software
- Diseño de software