La Especificación Funcional

La especificación funcional no es otra cosa que un escrito donde diga específicamente que va a hacer el programa. Como esta es la parte más importante del programa, me gusta decir el siguiente mantra:

Nunca escribas una sola línea de código sin una

especificación funcional”

Una Especificación Funcional es simplemente una descripción de las instrucciones que deberás codificar para comunicarle a la computadora lo que tiene que hacer. Eso es todo.

Todo se trata de contestar preguntas:

¨ ¿Qué estoy comunicando?

¨ ¿Qué realidad estoy modelando?

¨ ¿Qué datos necesito?

¨ ¿Qué datos deseo como resultado?

¨ ¿Cuáles son los pasos para obtener este resultado?

Una vez que tengas las respuestas, programar cualquier cosa solo es cuestión de traducir las instrucciones específicas a la computadora, en un lenguaje que ella comprenda.

Es muy importante que tomes en cuenta que las computadoras son tontas, no deducen o infieren lo que pretendes comunicarles, son incapaces de “adivinar”, debes ser muy específico y utilizar su lenguaje correctamente, para que “entienda” exactamente lo que quieres decirle.

Cómo puedes darte cuenta, la especificación funcional es la materialización de los principios básicos de la programación. Pero no creas que solo aplican en esta fase, debes tenerlos presentes durante todo el proceso de desarrollo de software.

Tener una especificación funcional es tener la mitad del programa hecho.

El punto más importante a tomar en cuenta es que una especificación FUNCIONAL debe estar escrita COMPLETAMENTE desde el punto de vista del USUARIO. Solo describe funciones, no toma en cuenta implementación, es decir, describe el qué, no el cómo.

Este es uno de los retos más grandes para un programador, porque automáticamente piensas en cómo lo vas a desarrollar, en las herramientas que vas a utilizar, en los lenguajes, es natural.

Es por eso existen personas especializadas para escribir especificaciones funcionales, sin embargo, si trabajas como independiente o en tus proyectos personales o en compañías muy pequeñas, es muy probable que tengas que escribir las especificaciones tu mismo.

Piensa en una especificación como una novela. Es mejor escribir algo interesante que dormir a todos con cosas técnicas y peor aún, con un documento orientado a la calidad de la documentación en lugar de a comunicar (ya sabes, esos documentos que tienen versión, autor, revisiones, tabla de contenidos y rollo, mucho rollo).

Por el contrario, la especificación ha de ser más narrativa, y como en cada narración, se tiene un planteamiento, un nudo y un desenlace.

El planteamiento debe poner en sintonía al lector, debe dar una idea clara de cuál es el problema a resolver y en términos generales qué es lo que hará el programa. Aquí establecemos los distintos escenarios que vamos a desarrollar. Contiene de qué se trata el programa y de que no, es decir, el alcance del mismo.

El nudo es el detalle de la funcionalidad, es la descripción del programa en cada escenario.

En el desenlace cerramos atando cabos, estableciendo temas pendientes si los hay, temas a los que hay que darles seguimiento, si los hay también y cerramos responsabilizándonos de la especificación. Una novela necesita un autor también.

Para una mejor comprensión, vamos a hacer un ejemplo de una especificación funcional, pequeña y simple, en aras de la comprensión, sobre una pieza de software para administrar usuarios.

UserMan

Administrador de Usuarios

Descripción: UserMan es un programa para administrar a los usuarios de la compañía Decisiones Diferentes S.A. de C.V.. Esta compañía necesita conocer cuántos usuarios tiene, quienes son y cómo comunicarse con ellos.

¿Que hace?

¨ Da de alta del usuario.

¨ Lista la relación de usuarios.

¨ Consulta información de un usuario en específico.

¨ Cambia la información del usuario.

¨ Da de baja a los usuarios.

¿Que no hace?

¨ No monitorea el uso de las cuentas.

¨ No auditar actividades de los usuarios.

Especificación Detallada

Para dar de alta un usuario: Entras al sistema, con tu propio usuario y contraseña. Seleccionas “Usuarios” del menú principal. Luego, seleccionas “Nuevo Usuario”. A continuación capturar el correo electrónico y el nombre del usuario, y das clic en “Guardar”.

Para consultar información de un usuario: Entras al sistema, con tu propio usuario y contraseña. Seleccionas “Usuarios” del menú principal. Luego, se listarán los usuarios en pantalla. Ubicas al usuario que quieres consultar y en su renglón das clic en “Actualizar”. Se mostrará una pantalla con la información del usuario, misma que puedes modificar. Al terminar, si haz realizado cambios, das clic en “Guardar”. Si no es así, das clic en “Cancelar”.

Como podemos ver, una especificación funcional nos es otra cosa que una descripción de cómo funciona el programa. Una vez que la tenemos, todo lo que tenemos que hacer es traducir de nuestro lenguaje al lenguaje de las computadoras, codificando un programa.

Un saludo a todos, chic@s.

L.

Related Posts

Lo que Tienes que Saber Antes de Aprender a Programar

¿Quieres aprender a programar desde cero? Lo primero que tienes que saber son fundamentos, y no solo de programación, sino de informática, adquirir una base sólida es fundamental para saber que es lo que estas haciendo y como hacerlo eficientemente. Te garantizo que invertir tiempo en comprender arquitectura de computadoras te facilitará toda tu carrera. […]

Read More

Los Tres Principales Sistemas Operativos: Cultura General

Necesitaremos conocimiento de sistemas operativos si vamos a ser programadores, pero no te preocupes, no vamos a comenzar programando kernels, vamos a repasar las plataformas más populares, por cultura general y por que necesitamos conocer en que vamos a programar, por supuesto. En computadoras de escritorio, hay tres grandes sistemas operativos: Microsoft Windows, Apple OS […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *

Busca en el blog aqui

Herramientas Útiles

Suscribete al blog

Recibe en tu correo las últimas publicaciones

Publicidad

Sígueme en Twitter