You are on page 1of 19

Qu son Requerimientos?

Normalmente, un tema de la Ingeniera de Software tiene diferentes significados.


De las muchas definiciones que existen para requerimiento, ha continuacin se
presenta la definicin que aparece en el glosario de la IEEE .
(1) Una condicin o necesidad de un usuario para resolver un problema o alcanzar
un objetivo. (2) Una condicin o capacidad que debe estar presente en un sistema
o componentes de sistema para satisfacer un contrato, estndar, especificacin u
otro documento formal. (3) Una representacin documentada de una condicin o
capacidad como en (1) o (2).

Los requerimientos puedes dividirse en requerimientos funcionales y
requerimientos no funcionales. Los requerimientos funcionales definen las
funciones que el sistema ser capaz de realizar. Describen las transformaciones
que el sistema realiza sobre las entradas para producir salidas.
Los requerimientos no funcionales tienen que ver con caractersticas que de una u
otra forma puedan limitar el sistema, como por ejemplo, el rendimiento (en tiempo
y espacio), interfaces de usuario, fiabilidad (robustez del sistema, disponibilidad de
equipo), mantenimiento, seguridad, portabilidad, estndares, etc.
Caractersticas de los requerimientos
Las caractersticas de un requerimiento son sus propiedades principales. Un
conjunto de requerimientos en estado de madurez, deben presentar una serie de
caractersticas tanto individualmente como en grupo. A continuacin se presentan
las ms importantes.
Necesario: Un requerimiento es necesario si su omisin provoca una deficiencia
en el sistema a construir, y adems su capacidad, caractersticas fsicas o factor
de calidad no pueden ser reemplazados por otras capacidades del producto o del
proceso.
Conciso: Un requerimiento es conciso si es fcil de leer y entender. Su redaccin
debe ser simple y clara para aquellos que vayan a consultarlo en un futuro.
Completo: Un requerimiento est completo si no necesita ampliar detalles en su
redaccin, es decir, si se proporciona la informacin suficiente para su
comprensin.
Consistente: Un requerimiento es consistente si no es contradictorio con otro
requerimiento.
No ambiguo: Un requerimiento no es ambiguo cuando tiene una sola
interpretacin.
Verificable: Un requerimiento es verificable cuando puede ser cuantificado de
manera que permita hacer uso de los siguientes mtodos de verificacin:
inspeccin, anlisis, demostracin o pruebas.

* Dificultades para definir los requerimientos *

Los requerimientos no son obvios y vienen de muchas fuentes.
Son difciles de expresar en palabras (el lenguaje es ambiguo).
Existen muchos tipos de requerimientos y diferentes niveles de detalle.
La cantidad de requerimientos en un proyecto puede ser difcil de manejar.
Nunca son iguales. Algunos son ms difciles, ms riesgosos, ms importantes o
ms estables que otros.
Los requerimientos estn relacionados unos con otros, y a su vez se relacionan
con otras partes del proceso.
Cada requerimiento tiene propiedades nicas y abarcan reas funcionales
especficas.
Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.
Son difciles de cuantificar, ya que cada conjunto de requerimientos es particular
para cada proyecto.

* Ingeniera de Requerimientos vs. Administracin de Requerimientos *

El proceso de recopilar, analizar y verificar las necesidades del cliente para un
sistema es llamado Ingeniera de Requerimientos. La meta de la ingeniera de
requerimientos (IR) es entregar una especificacin de requisitos de software
correcta y completa.
Los requerimientos son la Pieza fundamental en un proyecto de desarrollo de
software, es ellos se basan muchos participantes del proyecto para:
Planear el proyecto y los recursos que se usarn en l. Los lderes de proyecto
usan los requerimientos como una base para la estimacin del esfuerzo necesario
en un proyecto.
Especificar el tipo de verificaciones que se habrn de realizar al sistema. Por
ejemplo: cuando se esta tratando de alinearse a cierta norma oficial o estndar.
Planear la estrategia de prueba a la que habr de ser sometido el sistema. Los
requerimientos son la base sobre la cual se decide si un caso de prueba fue
ejecutado exitosamente por el sistema o no.
Son el fundamento del ciclo de vida del proyecto. Los requerimientos
documentados son la base para crear la documentacin del sistema
De ah su importancia y la importancia de que deban de ser definidos y manejados
de la forma mas adecuada posible.
Caractersticas de un requerimiento
Ya que visualizamos la importancia de los requerimientos en un sistema de
software entonces debemos de definir que caractersticas deben de poseer los
requerimientos adecuadamente formulados.

Los requerimientos deben ser:

Especificados por escrito. Como todo contrato o acuerdo entre dos partes
Posibles de probar o verificar. Si un requerimiento no se puede comprobar,
entonces cmo sabemos si cumplimos con l o no?
Descritos como una caracterstica del sistema a entregar. Esto es: que es lo que el
sistema debe de hacer (y no como debe de hacerlo)
Lo ms abstracto y conciso posible. Para evitar malas interpretaciones.


* Fundamentos del Anlisis de Requerimientos *

Definicin: Es el conjunto de tcnicas y procedimientos que nos permiten conocer
los elementos necesarios para definir un proyecto de software.
Es la etapa ms crucial del desarrollo de un proyecto de software.
La IEEE los divide en funcionales y no funcionales:
Funcionales: Condicin o capacidad de un sistema requerida por el usuario para
resolver un problema o alcanzar un objetivo.
No Funcionales: Condicin o capacidad que debe poseer un sistema par satisfacer
un contrato, un estndar, una especificacin u otro documento formalmente
impuesto.
Para realizar bien el desarrollo de software es esencial realizar una especificacin
completa de los requerimientos de los mismos. Independientemente de lo bien
diseado o codificado que est, un programa pobremente especificado
decepcionar al usuario y har fracasar el desarrollo.
La tarea de anlisis de los requerimientos es un proceso de descubrimiento y
refinamiento, El mbito del programa, establecido inicialmente durante la
ingeniera del sistema, es refinado en detalle. Se analizan y asignan a los distintos
elementos de los programas las soluciones alternativas.
Tanto el que desarrolla el software como el cliente tienen un papel activo en la
especificacin de requerimientos. El cliente intenta reformular su concepto, algo
nebuloso, de la funcin y comportamiento de los programas en detalles concretos,
El que desarrolla el software acta como interrogador, consultor y el que resuelve
los problemas.
El anlisis y especificacin de requerimientos puede parecer una tarea
relativamente sencilla, pero las apariencias engaan. Puesto que el contenido de
comunicacin es muy alto, abundan los cambios por mala interpretacin o falta de
informacin. El dilema con el que se enfrenta un ingeniero de software puede ser
comprendido repitiendo la sentencia de un cliente annimo: "S que crees que
comprendes lo que piensas que he dicho, pero no estoy seguro de que lo que
creste or sea lo que yo quise decir".
Los requerimientos de un sistema de software, cuando se ven en su conjunto son
extensos y detallados, y adems contienen mltiples relaciones entre s. Lo que
nos da a concluir, que el conjunto de requerimientos de un sistema computacional
es complejo.
Obtenemos la posibilidad de especificar sistemas complejos al documentar
especificaciones simples y concisas para el sistema. Esto se logra mediante al
clasificar, estructurar y organizar todo lo que el sistema debe de hacer. En otras
palabras al analizar sus requerimientos.
El anlisis de requerimientos es la tarea que plantea la asignacin de software a
nivel de sistema y el diseo de programas. El anlisis de requerimientos facilita al
ingeniero de sistemas especificar la funcin y comportamiento de los programas,
indicar la interfaz con otros elementos del sistema y establecer las ligaduras de
diseo que debe cumplir el programa. El anlisis de requerimientos permite al
ingeniero refinar la asignacin de software y representar el dominio de la
informacin que ser tratada por el programa. El anlisis de requerimientos de al
diseador la representacin de la informacin y las funciones que pueden ser
traducidas en datos, arquitectura y diseo procedimental. Finalmente, la
especificacin de requerimientos suministra al tcnico y al cliente, los medios para
valorar la calidad de los programas, una vez que se haya construido.

* Tareas del Anlisis *

El anlisis de requerimientos puede dividirse en cuatro reas:
1.- Reconocimiento del problema
2.- Evaluacin y sntesis
3.- Especificacin
4.- Revisin.

Inicialmente, el analista estudia la especificacin del sistema (si existe) y el plan de
proyecto. Es importante comprender el contexto del sistema y revisar el mbito de
los programas que se us para generar las estimaciones de la planificacin. A
continuacin, debe establecerse la comunicacin necesaria para el anlisis, de
forma que se asegure el reconocimiento del problema.

El analista debe establecer contacto con el equipo tcnico y de gestin del usuario
/ cliente y con la empresa que vaya a desarrollar el software. El gestor del
programa puede servir como coordinador para facilitar el establecimiento de los
caminos de comunicacin. El objetivo del analista es reconocer los elementos
bsicos del programa tal como lo percibe el usuario / cliente.

La evaluacin del problema y la sntesis de la solucin es la siguiente rea
principal de trabajo del anlisis. El analista debe evaluar el flujo y estructura de la
informacin, refinar en detalle todas las funciones del programa, establecer las
caractersticas de la interfase del sistema y descubrir las ligaduras del diseo,
Cada una de las tareas sirven para descubrir el problema de forma que pueda
sintetizarse un enfoque o solucin global.

Las tareas asociadas con el anlisis y especificacin existen para dar una
representacin del programa que pueda ser revisada y aprobada por el cliente. En
un mundo ideal el cliente desarrolla una especificacin de requerimientos del
software completamente por s mismo. Esto se presenta raramente en el mundo
real. En el mejor de los casos, la especificacin se desarrolla conjuntamente entre
el cliente y el tcnico.
Una vez que se hayan descrito las funcionalidades bsicas, comportamiento,
interfase e informacin, se especifican los criterios de validacin para demostrar
una comprensin de una correcta implementacin de los programas. Estos
criterios sirven como base para hacer una prueba durante el desarrollo de los
programas. Para definir las caractersticas y atributos del software se escribe una
especificacin de requerimientos formal. Adems, para los casos en los que se
desarrolle un prototipo se realiza un manual de usuario preliminar.
Puede parecer innecesario realizar un manual de usuario en una etapa tan
temprana del proceso de desarrollo, Pero de hecho, este borrador del manual de
usuario fuerza al analista a tomar el punto de vista del usuario del software. El
manual permite al usuario / cliente revisar el software desde una perspectiva de
ingeniera humana y frecuentemente produce el comentario: "La idea es correcta
pero esta no es la forma en que pens que se podra hacer esto". Es mejor
descubrir tales comentarios lo ms tempranamente posible en el proceso.
Los documentos del anlisis de requerimiento (especificacin y manual de
usuario) sirven como base para una revisin conducida por el cliente y el tcnico.
La revisin de los requerimientos casi siempre produce modificaciones en la
funcin, comportamiento, representacin de la informacin, ligaduras o criterios de
validacin. Adems, se realiza una nueva apreciacin del plan del proyecto de
software para determinar si las primeras estimaciones siguen siendo validas
despus del conocimiento adicional obtenido durante el anlisis.

* Obteniendo de la informacin *

Los requerimientos son el punto de acuerdo entre el cliente y el proyecto de
desarrollo de software, este entendimiento es necesario para poder construir
software que satisfaga las necesidades de nuestro cliente.

Si los requerimientos se enfocan a describir las necesidades del cliente, entonces
es lgico que para recabarlos haya que obtener la informacin de primera mano.
Esto es, mediante entrevistas con el cliente o recabando documentacin que
describa la manera que el cliente desea que funcione el sistema de software.

Las necesidades y / o requerimientos del cliente evolucionan con el tiempo y cada
cambio involucra un costo. Por eso es necesario tener archivada una copia de la
documentacin original del cliente, as como cada revisin o cambio que se haga a
esta documentacin. Como cada necesidad del cliente es tratada de diferente
forma, es necesario clasificar estas necesidades para saber cuales de ellas sern
satisfechas por el software y cuales por algn otro producto del sistema.

* Especificacin de Requisitos de Software *(SRS)

La especificacin de requisitos de software es la actividad en la cual se genera el
documento, con el mismo nombre, que contiene una descripcin completa de las
necesidades y funcionalidades del sistema que ser desarrollado; describe el
alcance del sistema y la forma en como har sus funciones, definiendo los
requerimientos funcionales y los no funcionales.
En la SRS se definen todos los requerimientos de hardware y software,
diagramas, modelos de sistemas y cualquier otra informacin que sirva de soporte
y gua para fases posteriores.
Es importante destacar que la especificacin de requisitos es el resultado final de
las actividades de anlisis y evaluacin de requerimientos; este documento
resultante ser utilizado como fuente bsica de comunicacin entre los clientes,
usuarios finales, analistas de sistema, personal de pruebas, y todo aquel
involucrado en la implementacin del sistema.
Los clientes y usuarios utilizan la SRS para comparar si lo que se est
proponiendo, coincide con las necesidades de la empresa. Los analistas y
programadores la utilizan para determinar el producto que debe desarrollarse. El
personal de pruebas elaborar las pruebas funcionales y de sistemas en base a
este documento. Para el administrador del proyecto sirve como referencia y control
de la evolucin del sistema.
La SRS posee las mismas caractersticas de los requerimientos: completa,
consistente, verificable, no ambigua, factible, modificable, rastreable, precisa,
entre otras. Para que cada caracterstica de la SRS sea considerada, cada uno de
los requerimientos debe cumplirlas; por ejemplo, para que una SRS se considere
verificable, cada requerimiento definido en ella debe ser verificable; para que una
SRS se considere modificable, cada requerimiento debe ser modificable y as
sucesivamente. Las caractersticas de la SRS son verificadas en la actividad de
Validacin, descrita en el punto.
La estandarizacin de la SRS es fundamental pues ayudar, entre otras cosas, a
facilitar la lectura y escritura de la misma. Ser un documento familiar para todos
los involucrados, adems de asegurar que se cubren todos los tpicos
importantes.
Existen plantillas creadas para la SRS, sin embargo, cada uno tiene la potestad de
crear su propia plantilla.
Clasificacin de los requerimientos
El clasificar requerimientos es una forma de organizarlos, hay requerimientos que
por sus caractersticas no pueden ser tratados iguales.
La siguiente es una recomendacin de como pueden ser clasificados los
requerimientos aunque cada proyecto de software pueda usar sus propias
clasificaciones.
Requerimientos del "entorno"
El entorno es todo lo que rodea al sistema. Aunque no podemos cambiar el
entorno, existen cierto tipo de requerimientos que se clasifican en esta categora
por que:
El sistema usa el entorno y lo necesita como una fuente de los servicios
necesarios para que funcione. Ejemplos del entorno podemos mencionar:
sistemas operativos, sistema de archivos, bases de datos.
El sistema debe de ser robusto y tolerar los errores que puedan ocurrir en el
entorno, tales como congestin en los dispositivos y errores de entrada de datos,
por lo tanto el entorno se debe de considerar dentro de los requerimientos.
Requerimientos "ergonmicos"
l mas conocido de los requerimientos ergonmicos es la interfase con el usuario
o GUI (Graphic User Interface). En otras palabras, los requerimientos ergonmicos
son la forma en que el ser humano interacta con el ser sistema.
Requerimientos de Interfase
La interfase es como interacta el sistema con el ser humano o con otros sistemas
(el enfoque es prcticamente el opuesto a los requerimientos ergonmicos), La
interfase es la especificacin formal de los datos que el sistema recibe o manda al
exterior. Usualmente se especifica el protocolo, el tipo de informacin, el medio
para comunicarse y el formato de los datos que se van a comunicar.
* Actividades de la Ingeniera de Requerimientos *

En el proceso de IR son esenciales diversas actividades. En este documento
sern presentadas, sin embargo, en un proceso de ingeniera de requerimientos
efectivo, estas actividades son aplicadas de manera continua y en orden variado.
Dependiendo del tamao del proyecto y del modelo de proceso de software
utilizado para el ciclo de desarrollo, las actividades de la IR varan tanto en nmero
como en nombres. La tabla #1 muestra algunos ejemplos de las actividades
identificadas para cada proceso.
A pesar de las diferentes interpretaciones que cada desarrollador tenga sobre el
conjunto de actividades mostradas en la tabla anterior, podemos identificar y
extraer cinco actividades principales que son:
Anlisis del Problema
Evaluacin y Negociacin
Especificacin
Validacin
Evolucin
* Principios de Especificacin *

La especificacin, independientemente del modo en que se realice, puede ser
vista como un proceso de representacin. Los requerimientos se representan de
forma que conduzcan finalmente a una correcta implementacin del software.
Baltzer y Goldman proponen ocho principios para una buena especificacin:

PRINCIPIO #1. Separar funcionalidad de implementacin.
Primero, por definicin, una especificacin es una descripcin de lo que se desea,
en vez de cmo se realiza (implementa). Las especificaciones pueden adoptar dos
formas muy diferentes. La primera forma es la de funciones matemticas: dado
algn conjunto de entrada, producir un conjunto particular de salida. La forma
general de tales especificaciones es encontrar [un/el/todos] resultado tal que P
(entrada), donde P representa un predicado arbitrario. En tales especificaciones, el
resultado a ser obtenido ha sido expresado enteramente en una forma sobre el
que (en vez de cmo). En parte, esto es debido a que el resultado es una funcin
matemtica de la entrada (la operacin tiene puntos de comienzo y parada bien
definidos) y no esta afectado por el entorno que le rodea.
PRINCIPIO #2. Se necesita un lenguaje de especificacin de sistemas orientado al
proceso.
Considerar una situacin en la que el entorno sea dinmico y sus cambios afecten
al comportamiento de alguna entidad que interacte con dicho entorno. Su
comportamiento no puede ser expresado como una funcin matemtica de su
entrada. En vez de ello, debe emplearse una descripcin orientada al proceso, en
la cual la especificacin del que se consigue mediante la especificacin de un
modelo del comportamiento deseado en trminos de respuestas funcionales, a
distintos estmulos del entorno.
PRINCIPIO #3. Una especificacin debe abarcar el sistema del cual el software es
una componente.
Un sistema esta compuesto de componentes que interactan. Solo dentro del
contexto del sistema completo y de la interaccin entre sus partes puede ser
definido el comportamiento de una componente especifica. En general, un sistema
puede ser modelado como una coleccin de objetos pasivos y activos. Estos
objetos estn interrelacionados y dichas relaciones entre los objetos cambian con
el tiempo. Estas relaciones dinmicas suministran los estmulos a los cuales los
objetos activos, llamados agentes, responden. Las respuestas pueden causar
posteriormente cambios y, por tanto, estmulos adicionales a los cuales los
agentes deben responder.
PRINCIPIO #4. Una especificacin debe abarcar el entorno en el que el sistema
opera.
Similarmente, el entorno en el que opera el sistema y con el que interacta debe
ser especificado.
Afortunadamente, esto tan solo necesita reconocer que el propio entorno es un
sistema compuesto de objetos que interactan, pasivos y activos, de los cuales el
sistema especificado es una agente, Los otros agentes, los cuales son por
definicin inalterables debido a que son parte del entorno, limitan el mbito del
diseo subsecuente y de la implementacin. De hecho, la nica diferencia entre el
sistema y su entorno es que el esfuerzo de diseo e implementacin subsecuente
opera exclusivamente sobre la especificacin del sistema. La especificacin del
entorno facilita que se especifique la interfaz del sistema de la misma forma que el
propio sistema, en vez de introducir otro formalismo.
PRINCIPIO #5. Una especificacin de sistema debe ser un modelo cognitivo.
La especificacin de un sistema debe ser un modelo cognitivo, en vez de un
modelo de diseo o implementacin. Debe describir un sistema tal como es
percibido por su comunidad de usuario. Los objetivos que manipula deben
corresponderse con objetos reales de dicho dominio; los agentes deben modelar
los individuos, organizaciones y equipo de ese dominio; y las acciones que
ejecutan deben modelar lo que realmente ocurre en el dominio. Adems, debe ser
posible incorporar en la especificacin las reglas o leyes que gobiernan los objetos
del dominio. Algunas de estas leyes proscriben ciertos estados del sistema (tal
como "dos objetos no pueden estar en el mismo lugar al mismo tiempo"), y por
tanto limitan el comportamiento de los agentes o indican la necesidad de una
posterior elaboracin para prevenir que surjan estos estados.
PRINCIPIO #6. Una especificacin debe ser operacional.
La especificacin debe ser completa y lo bastante formal para que pueda usarse
para determinar si una implementacin propuesta satisface la especificacin de
pruebas elegidas arbitrariamente. Esto es, dado el resultado de una
implementacin sobre algn conjunto arbitrario de datos elegibles, debe ser
posible usar la especificacin para validar estos resultados. Esto implica que la
especificacin, aunque no sea una especificacin completa del como, pueda
actuar como un generador de posibles comportamientos, entre los que debe estar
la implementacin propuesta. Por tanto, en un sentido extenso, la especificacin
debe ser operacional.
PRINCIPIO #7. La especificacin del sistema debe ser tolerante con la
incompletitud y aumentable.
Ninguna especificacin puede ser siempre totalmente completa. El entorno en el
que existe es demasiado complejo para ello. Una especificacin es siempre un
modelo, una abstraccin, de alguna situacin real (o imaginada). Por tanto, ser
incompleta. Adems, al ser formulad existirn muchos niveles de detalle. La
operacionalidad requerida anteriormente no necesita ser completa. Las
herramientas de anlisis empleadas para ayudar a los especificadores y para
probar las especificaciones, deben ser capaces de tratar con la incompletitud.
Naturalmente esto debilita el anlisis, el cual puede ser ejecutado ampliando el
rango de comportamiento aceptables, los cuales satisfacen la especificacin, pero
tal degradacin debe reflejar los restantes niveles de incertidumbre.
PRINCIPIO #8. Una especificacin debe ser localizada y dbilmente acoplada.
Los principios anteriores tratan con la especificacin como una entidad esttica.
Esta surge de la dinmica de la especificacin. Debe ser reconocido que aunque
el principal propsito de una especificacin sea servir como base para el diseo e
implementacin de algn sistema, no es un objeto esttico precompuesto, sino un
objeto dinmico que sufre considerables modificaciones. Tales modificaciones se
presentan en tres actividades principales: formulacin, cuando se est creando
una especificacin inicial; desarrollo, cuando la especificacin se esta elaborando
durante el proceso iterativo de diseo e implementacin; y mantenimiento, cuando
la especificacin se cambia para reflejar un entorno modificado y / o
requerimientos funcionales adicionales.
Requerimientos funcionales
Estos son los que describen lo que el sistema debe de hacer. Es importante que
se describa l Qu? Y no l Cmo?. Estos requerimientos al tiempo que avanza
el proyecto de software se convierten en los algoritmos, la lgica y gran parte del
cdigo del sistema.
Requerimientos de desempeo
Estos requerimientos nos informan las caractersticas de desempeo que deben
de tener el sistema. Que tan rpido?, Que tan seguido?, Cuantos recursos?,
Cuantas transacciones?
Este tipo de requerimientos es de especial importancia en los sistemas de tiempo
real en donde el desempeo de un sistema es tan crtico como su funcionamiento.
Disponibilidad (en un determinado periodo de tiempo)
Este tipo de requerimientos se refiere a la durabilidad, degradacin, potabilidad,
flexibilidad, contabilidad y capacidad de actualizacin. Este tipo de requerimientos
es tambin muy importante en sistemas de tiempo real puesto que estos sistemas
manejan aplicaciones crticas que no deben de estar fuera de servicio por periodos
prolongados de tiempo.
Entrenamiento
Este tipo de requerimientos se enfoca a las personas que van usar el sistema.
Que tipo de usuarios son?, Que tipo de operadores?, Que manuales se
entregarn y en que idioma?
Este tipo de requerimientos, aunque muchas veces no termina en un pedazo de
cdigo dentro del sistema, son muy importantes en el proceso de diseo ya que
facilitan la introduccin y aceptacin del sistema en donde ser implementado.
Restricciones de diseo
Muchas veces las soluciones de un sistema de software son normadas por leyes o
estndares, este tipo de normas caen como "restricciones de diseo".
Materiales
Aqu se especifica en que medio se entregara el sistema y como esta
empaquetado. Es importante para definir los costos de industrializacin del
sistema.

* Manejo de requerimientos *

De acuerdo con el "Capability Maturity Model" (CMM), el manejo de
requerimientos involucra:
"Establecer y mantener un acuerdo con el cliente sobre los requerimientos del
proyecto de software. Este acuerdo son los requerimientos del sistema alojados al
software." ". Este acuerdo cubre requerimientos tcnicos y no tcnicos (como
fechas de entrega). El acuerdo forma las bases para estimar, planear, ejecutar y
monitorear el proyecto de desarrollo de software a travs de todo su ciclo de vida."
"Bajo las restricciones del proyecto, el grupo de manejo de requerimientos toma
las medidas necesarias para que los requerimientos que estn bajo su
responsabilidad estn documentados y controlados"
De que manera podemos controlar los requerimientos de software si estos
siempre evolucionan con el tiempo?. El CMM nos proporciona las guas para
lograrlo.
"Para lograr el control de los requerimientos, el grupo de requerimientos revisa los
requerimientos antes de que estos sean incorporados al proyecto de software y
cada vez que los requerimientos cambian los planes, productos, y actividades son
ajustadas para quedar en lnea con los nuevos requerimientos de software".
En otras palabras, para obtener el nivel que requiere el CMM en manejo de
requerimientos dbenos de tomar en cuenta dos cosas.
Que los requerimientos deben de ser revisados (y aprobados) por el grupo de
requerimientos, y no son impuestos por en su totalidad por presiones externas
ajenas al proyecto.
El requerimiento tcnico podr ser impuesto por el mercado o presiones de la
competencia, pero entonces los requerimientos no tcnicos (Calidad, Costo y
Tiempo de entrega) debern estar especificados de comn acuerdo con el grupo
de requerimientos del proyecto de software.
Los requerimientos tcnicos y no tcnicos forman un conjunto entre s, si cambia
uno forzosamente debern cambiar los dems. Esto es: ms contenido tcnico
implica o ms costo, o menos calidad o ms tiempo estimado de entrega. De
modo que los cambios tcnicos debern ser aprobados por el grupo de
requerimientos y este grupo estimar los impactos en tiempo, costo, calidad. El
resultado de la estimacin es la entrada a los lderes del proyecto para decidir si el
cambio se acepta o no.

* ORGANIZACIN Y CAPTURA DE REQUERIMIENTOS DE USUARIO *

Para prosperar en el mercado, cualquier producto debe satisfacer las necesidades
de los usuarios, lo cual no resulta posible si no integra y pone al alcance del
consumidor de forma comprensible los fundamentos de todos los aspectos del
desarrollo. Para captar las necesidades especficas de los usuarios es
indispensable que los documentos que recogen los requerimientos se redacten
utilizando mtodos pragmticos.
Se debe utilizar una metodologa detallada de definicin de los requerimientos de
usuario. Organizar entrevistas destinadas a obtener la mxima informacin posible
acerca de los requerimientos de los usuarios. Traducir las oportunidades /
necesidades en requerimientos del proyecto. Comprender el perfil y entorno del
usuario. Evaluar el flujo de trabajo. Crear un documento de requerimientos
generales. Conseguir la participacin y confirmacin del usuario.
Los gerentes y usuarios del sistema tambin poseen un papel importante en le
diseo del sistema; no es solamente el proyecto del analista. Durante el diseo, a
algunos se les pide que revisen los borradores de los informes, que examinen los
formatos de entrada y que ayuden en la escritura de los procedimientos para
decirles a otras personas como utilizar el sistema en forma apropiada.
La participacin del usuario proporciona al analista una retroalimentacin
importante conforme avanza en el diseo; adems asegura a los usuarios tengan
un conocimiento no tcnico de lo realizara o no el nuevo sistema.
Esta visin general del diseo de sistemas subraya los aspectos de diseo que se
vern mas adelante en el diseo de la salida de sistema.

* REQUERIMIENTOS DEL SISTEMA *

Los Sistemas de Informacin por computadora normalmente estn integrados por
muchos componentes. En la mayor parte de los casos, es difcil para los analistas
entender todos estos componentes an mismo tiempo; por lo tanto los
investigadores tienen que comenzar con preguntas de tipo general con relacin al
propsito del sistema sus entradas y salidas de los procesos incluidos.
En los grandes proyectos de sistema varios analistas llevan a cabo una
investigacin en forma seccionada que la distribuye entre ellos mismos, de
manera que cada uno pueda trabajar en forma independiente.
Existen dos estrategias ampliamente utilizadas para determinar los requerimientos
de informacin. Se clasifican en dos tipos:
1.- Flujo de Datos.
2.- Estrategias de Anlisis de Decisin para el Conocimiento para los Sistema de
Informacin.

* Estrategia del Flujo de Datos *

Cuando se siguen un flujo a travs de los procesos de negocio, que es el
propsito del anlisis del flujo de datos, le indica a los analistas una gran cantidad
de datos sobre como s esta llevando a cabo los objetivos de la compaa. Al
manejar las transacciones y completar las tareas, los datos de entrada se
procesan, almacenan, consultan, utiliza, modifica y se emiten.
El anlisis de flujo de datos que muestra el estudio y el uso de cada actividad,
documenta los hallazgos en los diagramas de flujo de datos.

* Estrategia del Anlisis de Decisiones *

La estrategia del anlisis de decisiones es un complemento del anlisis del flujo de
datos. Esta estrategia realza el estudio de los objetivos de una operacin y de las
decisiones que deben realizarse para cumplir con los objetivos.
Las decisiones se presentan tanto en los niveles operativos como en los de alto
nivel gerencial, la estrategia de anlisis de decisin con frecuencia utiliza por parte
de alta gerencia para desarrollar la toma de decisiones.
La alternativa que selecciona los gerentes responsables en la toma de decisiones,
en cuanto a una estrategia de precios entre un conjunto de alternativas, se maneja
de forma diferente a la opcin que toma un supervisor de departamento para
aceptar o rechazar pedidos.
La decisin de rechazar pedidos generalmente ocurre con ms frecuencia, de
manera que las condiciones y acciones normalmente se conocen como un
aspecto importante.

* Etapas en la Estrategia del Anlisis del Flujo de Datos *

1. - Estudiar las operaciones y procesos en marcha.
2. - Identificar cmo se procesan los datos al manejar transacciones y terminar las
tareas.
3. - Seguir el flujo de datos:
* Proceso
* Almacenamiento
* Recuperacin
* Salida
4. - Aadir gradualmente detalles a los niveles inferiores.
Etapas en la Estrategia del Anlisis de Decisin
1. -Estudiar los objetivos y decisiones necesarias.
2. - Desarrollar un modelo del proceso de decisin.
3. - Probar el modelo con datos de prueba.
4. - Identificar los requerimientos del proceso para los datos.

* Requerimientos De Entrada *

Es el enlace que une al sistema de informacin con el mundo y sus usuarios, en
esta existen aspectos generales que todos los analistas deben tener en cuenta
estos son:
Objetivos del Diseo de Entrada.
Captura de Datos para la Entrada.

Objetivo del Diseo de Entrada
Consiste en el desarrollo de especificaciones y procedimientos para la preparacin
de datos, la realizacin de los procesos necesarios para poner los datos de
transaccin en una forma utilizable para su procesamiento as como la entrada de
los datos se logra al instruir a la computadora para que lea ya sea documentos
escritos, impresos por personas que los escriben directamente al sistema.
Existen cinco objetivos que controlan la cantidad de entrada requerida, a enviar los
retrasos, controlar los errores y mantener la sencillez de los pasos necesarios,
estos son:
Control de la Calidad de Entrada
Evitar los Retrasos
Evitar los errores en los datos
Evitar los pasos adicionales
Mantener la Sencillez del Proceso
Control de la Calidad de Entrada:
Existen varias razones por las cuales un buen diseador debe controlar la
cantidad de datos en la entrada:
- Las Operaciones de preparacin y entrada dependen de las personas dado que
los costos de mano de obra son altos y la preparacin de ingreso de los datos
tambin lo son.
-
La fase de entrada puede ser un proceso lento que toma mucho ms tiempo que
el que necesitan las computadoras para realizar sus tareas.

Evitar los Retrasos:
Tambin conocido con el nombre de cuello de botella son siempre uno de los
objetivos que el analista evita al disear la entrada, una forma de evitarle es
utilizar los documentos de retorno.

Evitar los errores en los datos:
La tasa de errores depende de la cantidad de datos, ya que entre ms pequea
sea esta menores sern las oportunidades para cometer errores. Es comn
encontrar en las operaciones de ventas por lo menos un 3% de errores en las
operaciones de entrada de datos.
Evitar los Pasos Adicionales:
Algunas veces el volumen de transacciones y la cantidad de datos en preparacin
es algo que no se puede controlar por ello el analista experimentado, evitara
diseos para la entrada que traigan una mayor cantidad de pasos a seguir. Ya sea
aadir o quitar pasos cuando se alimenta un proceso muchas veces al transcurso
de un da.

Mantener la sencillez del Proceso:
El sistema mejor diseado se ajusta a las personas que lo utilizarn y al mismo
tiempo proporcionarn mtodos para el control de los errores, la simplicidad
funciona y es aceptada por cualquier usuario. Cuesta trabajo que los usuarios
acepten sistemas complejos o confusos y que no exista ninguna garanta para el
xito al instalar un sistema complejo y que domine.
Captura de Datos para la Entrada:
En una transaccin existen datos importantes y otros que no, el analista debe
saber cuales utilizar y cuales en realidad deben formar la entrada. Existen dos
tipos de datos:
datos variables
datos de identificacin
Datos Variables:

Son aquellos que cambian para cada transaccin o toman de decisin.
Datos de Identificacin:
Estos son los que identifican en forma nica el artculo que esta siendo
procesado.

* Requerimientos De Salida *

Niveles de diseo
El diseo de sistema se representa a travs de dos fases: el diseo lgico y el
diseo fsico.
Cuando los analistas formulan un diseo lgico; escriben las especificaciones
detalladas del nuevo sistema; esto es, describen sus caractersticas: las salidas,
entradas, archivos y bases de datos y procedimientos; todos de manera que
cubran los requerimientos del proyecto.
El diseo lgico de un sistema de informacin es como el plano de un ingeniero
para armar un automvil: muestra las caractersticas principales(motor,
transmisin y rea para los pasajeros)y como se relacionan unas con otras(donde
se conectan entre s los componentes del sistema, o por ejemplo, cuan separadas
estn las puertas.
Los informes y la produccin del analista son los componentes de todo el
mecanismo que emplea el ingeniero. Los datos y procedimientos se ligan y
entonces se produce un sistema que trabaje.
El diseo lgico tambin especifica las formas de entrada y las descripciones de
las pantallas de todas las transacciones y archivos a fin de mantener los datos de
inventario, los detalles de las transacciones y los datos del proveedor. Las
especificaciones de los procedimientos describen mtodos para introducir los
datos, corridas de informes copiados de archivos y deteccin de problemas.
El diseo fsico, actividad que sigue el diseo lgico, produce programas de
software, archivos y un sistema en marcha, las especificaciones del diseo indican
a los programadores que debe hacer el sistema. Los programadores a su vez
escriben los programas que aceptan entradas por parte de los usuarios, procesan
los datos, producen los informes y almacenan estos datos en los archivos.
Utilizacin de los Datos de Requerimientos:
El alcance del diseo de sistemas se gua por el marco de referencia para el
nuevo sistema desarrollado durante el anlisis. Los datos de los requerimientos,
recopilados durante la investigacin, conforman las actividades y componentes del
sistema. Los analistas formulan un diseo lgico que apoya los procesos y
decisiones, los contenidos del sistema pueden cambiar como resultado de un
nuevo diseo.
El diseo lgico va de arriba hacia abajo, como lo hizo la determinacin de
requerimientos.
En primer lugar se identifican las caractersticas generales, como informes y
entradas; en el diseo de la salida por ejemplo, los analistas deben conocer la
longitud de campo de un dato especfico para establecer cuanto espacio dejar en
la informacin, en la pantalla de despliegue visual o archivo.
A lo largo de los aos hemos visto una evolucin de ideas y tcnicas en el campo
del anlisis de sistemas. La cual cabe en tres perodos amplios segn Yourdon:
1. El anlisis de sistema convencional, anterior a los aos 70s, caracterizado por
especificaciones tipo novela victoriana que eran difciles de leer y entender, y casi
imposibles de mantener.
2. El anlisis estructurado clsico, de mediados de los aos 70s, a mediados de
los aos 80s. Esto se caracteriz por primeras versiones de modelos grficos, y
nfasis en el modelado de las implementaciones actuales de un sistema antes de
modelar el nuevo.
3. El anlisis estructurado moderno, en el cual se introducen mejoras sobre todo
para modelar sistemas de tiempo real y relaciones de situaciones complejas.
Aumentando por ende la comunicacin entre el analista y el sistema.
En la actualidad las tcnicas modernas estn siendo fusionadas, para as lograr un
mejor mtodo que pueda hacerle frente a las necesidades de las diferentes fases
del ciclo de vida del sistema, incluyendo a la fase de anlisis. Obteniendo de est
manera mejores resultados que pueda interpretar el analista en forma rpida y
precisa.
En primera instancia debemos decir que el anlisis estructurado segn Senn
"permite al analista conocer un sistema o proceso (actividad) en una forma lgica y
manejable al mismo tiempo que proporciona la base para asegurar que no se
omite ningn detalle pertinente". El objetivo que persigue el anlisis estructurado
es organizar las tareas asociadas con la determinacin de requerimientos para
obtener la comprensin completa y exacta de una situacin dada. Se puede decir
adicionalmente que los componentes del anlisis estructurado son los siguientes:
smbolos grficos, diccionarios de datos, descripciones de procesos y
procedimientos, reglas.
Despus de relacionarnos brevemente con la terminologa bsica, podemos entrar
en aspectos relacionados con los cambios del anlisis estructurado.
Podemos decir que para finales de los aos 60s e inicios de los 70s el anlisis
estructurado surge de la necesidad de buscar una forma interpretativa ms rpida
y eficiente, de tal manera que se pudiesen definir los requerimientos del usuario y
las especificaciones funcionales del sistema. Pero esto no se daba porque lo que
exista eran grandes volmenes de informacin que haba que leer por completo y
que acarreaban una serie de problemas de: monolitismo, redundancia,
ambigedad e imposibilidad de mantener. Es por ello que surge una amplia
variedad de diagramas que permiten representar las especificaciones funcionales
en forma sencilla y rpida, aumentando por ende el grado de comunicacin entre
las especificaciones funcionales y el usuario final (analista, programador,
diseador).
Posteriormente, a mediados de los aos 70s estando el anlisis estructurado
clsico en su apogeo aparecen una serie de dificultades que limitan al analista
hacer un buen desempeo de sus actividades. Entre estos problemas segn
Yourdon podemos mencionar:
Distincin difusa y poca, definida entre los modelos lgicos y los modelos fsicos.
Limitacin para modelar sistemas en tiempo real.
El modelo de datos se haca de una manera primitiva.

Estas y otras razones dieron nacimiento a ciertas mejoras en el anlisis
estructurado clsico tales como: diagramas de entidad-relacin, diagramas de
transicin de estados, divisin de eventos, modelos esenciales y modelos de
implantacin. Pero a pesar de esto segn Yourdon se siguieron dando ms
problemas como los siguientes:
Tras la segunda y tercera correcciones de un diagrama, el analista se volva
cada vez ms apuesto y renuente a hacer ms cambios.
Debido a la cantidad de trabajo requerido, el analista dejaba a veces de dividir el
modelo del sistema en modelos de menor nivel, quedando por ende, funciones
primitivas.
A menudo no se incorporaban en el modelo del sistema los cambios en los
requerimientos del usuario sino hasta despus de la fase de anlisis del proyecto.
Inclusive las correcciones de los diagramas haba que hacerlas en forma manual,
para asegurar que fuesen consistentes y estuviesen completas; lo cual era
bastante tedioso y dejaba por fuera muchos errores que deban de encontrarse.
Pero para mediados de los 80s aparecieron las herramientas CASE que trataron
de subsanar estos problemas. Las herramientas CASE (Ingeniera de software
auxiliada por computadora) se utilizan para dibujar diagramas de flujo de datos y
otros adems de llevar a cabo una variedad de labores de revisin de errores.
Finalmente, algunos usuarios tenan dificultades al tratar con los modelos grficos
del anlisis estructurado y preferan alguna otra forma de modelar los
requerimientos y comportamiento del sistema; es por ello que aparecen las
herramientas de generacin de prototipos (mediados de los 80s) que son
considerados como una alternativa al anlisis estructurado para tales usuarios.
Tambin se utiliza para recordar en forma breve y precisa lo que se ha hecho a lo
largo de todo el desarrollo del sistema, para no perder la secuencia de lo que se
est realizando.
En la actualidad muchas de estas herramientas se estn utilizando para facilitar la
fase de anlisis, e inclusive se estn elaborando o fusionando lo mejor de cada
una de las tcnicas que atienden las necesidades de todas las fases del ciclo de
vida del sistema; para as obtener un mejor aprovechamiento, entendimiento, y
rendimiento al momento que se ponga a correr el sistema. Disminuyendo de esta
manera la serie de errores que se cometan anteriormente, con la introduccin de
herramientas ms especializadas y fciles de utilizar.
Diversos aspectos del anlisis estructurado han cambiado gradualmente a lo largo
de los ltimos aos. Las principales reas de cambio incluyen lo siguiente segn
Yourdon:
Cambios de terminologa.
Particin de acontecimientos.
La desenfatizacin del modelado fsico actual.
Herramientas de modelado en tiempo real.
Integracin ms cercana del modelado de procesos y datos.
En un futuro no muy lejano se piensa que se darn, si es que ya no se estn
dando, los siguientes cambios o pautas en el mbito total en lo que se refiere a
anlisis segn Yourdon:
Mayor difusin del anlisis de sistemas, sobre todo en los siguientes grupos: los
niveles superiores de administracin en organizaciones gubernamentales y de
negocios, los nios, y profesionales de la computacin en los pases del tercer
mundo.
Impacto sobre la industria de software del tercer mundo.
Proliferacin de las herramientas automatizadas, aunque no todos los analistas
tienen acceso a las ltimas herramientas de anlisis.
Impacto de los desastres de mantenimiento.
Integracin del anlisis estructurado con la inteligencia artificial.
Podemos adicionar que el futuro del anlisis estructurado va a depender mucho
tambin de que tan rpido pueda ajustarse el mismo a los cambios tecnolgicos
que se viven hoy en da. Debido a que han estado surgiendo otras tcnicas en
otras reas como lo es la orientada a objetos, la cual prev un buen futuro y
muchas mejoras para los sistemas actuales.

* DOCUMENTOS DE REQUERIMIENTOS DEL SOFTWARE*

Fue la aparicin del diseo y la programacin estructurada alrededor de los aos
60s la que dieron cabida al surgimiento del anlisis estructurado, ya que exista la
necesidad de utilizar una notacin grfica para representar los datos y los
procesos que los transforman". Es por ello que surgen una serie de temas afines
tales como: herramientas automatizadas (CASE), prototipos, diagramas de
entidad-relacin etc.
ndice de Trminos relacionados: CASE (Ingeniera de Software auxiliada por
computadora), elaboracin de prototipos, smbolos grficos, diccionarios de datos,
descripciones de procesos y procedimientos, reglas, diagramas de estados,
diagramas de entidad-relacin, diagramas de transicin de eventos, divisin de
eventos, modelos esenciales y modelos de implantacin.

* Mtodos de Anlisis Orientados al Flujo de Datos *

La informacin se transforma como un flujo a travs de un sistema basado en
computadora. El sistema acepta entrada de distintas formas; aplica un hardware,
software y elementos humanos para transformar la entrada en salida; y produce
una salida en distintas formas. La entrada puede ser una seal de control
transmitida por un transductor, una serie de nmeros escritos por un operador
humano, un paquete de informacin transmitido por un enlace a red, o un
voluminoso archivo de datos almacenado en memoria secundaria. La
transformacin puede comprender una sencilla comparacin lgica, un complejo
algoritmo numrico, o un mtodo de inferencia basado en regla de un sistema
experto. La salida puede encender un sencillo led o producir un informe de 200
pginas. En efecto, un modelo de flujo de datos puede aplicarse a cualquier
sistema basado en computadora independientemente del tamao o complejidad.

La funcin global del sistema se representa como una transformacin sencilla de
la informacin, representada en la figura como una burbuja. Una o ms entradas.
Representadas como flechas con etiqueta, conducen la transformacin para
producir la informacin de salida. Puede observarse que el modelo puede
aplicarse a todo el sistema o solo a un elemento de software. La clave es
representar la informacin dada y producida por la transformacin.

You might also like