Professional Documents
Culture Documents
Veamos este concepto que ofrece Jackson & Zave: Todo problema sw. consiste en
configurar una mquina para que ejerza unos efectos R en un dominio K. La conexin se
realiza a travs de una interfaz S.
Los efectos R son los requisitos: Necesidades, metas, objetivos
El conocimiento del dominio K describe el contexto.
La mquina (hw+sw) es la que realizar los requisitos R, gracias a S, que describe
la conexin con el dominio K.
Por ejemplo, el requisito de negocio para permitir que el cliente pague en el grifo su
consumo podra traducirse en mltiples necesidades de los usuarios, incluidos los
requisitos para que el usuario:
Pase de crdito o dbito
Introduzca un nmero de PIN de seguridad
Solicite un recibo en el grifo
Los requisitos funcionales del producto, que definen la funcionalidad del software debe ser
construido en el producto para que los usuarios puedan realizar sus tareas, respondiendo
as a los requisitos de las empresas. Mltiples requisitos de nivel funcional pueden ser
necesarios para cumplir con un requisito de un usuario. Por ejemplo, los requisitos que los
usuarios puedan pasar su tarjeta de crdito podra traducirse en mltiples requerimientos
funcionales como requisitos para el software:
Preguntar al cliente poner su tarjeta en el lector
Detectar que la tarjeta haya sido pasada
Determine si la tarjeta se lee correctamente y rpido que el cliente pase la tarjeta
de nuevo
Analizar la informacin de la banda magntica de la tarjeta
A diferencia de los requisitos de negocio, las reglas de negocio son las polticas
especficas, normas, prcticas, reglamentos y directrices que definen cmo los usuarios
hacer negocios (y por tanto se consideran los requisitos de nivel de usuario). El producto
de software debe cumplir a estas reglas para funcionar adecuadamente en el dominio del
usuario. Una visin comercial de los requisitos resumen la siguiente grfica.
Hay un nivel bsico de los requisitos de calidad que un cliente espera que el producto
tenga. Estos son requisitos que son asumidos por el cliente y generalmente no son
expresados. Por ejemplo, se espera un coche que tiene cuatro ruedas, un motor en
funcionamiento, y un volante. Este nivel de exigencia no satisface al cliente. La
emocin representa los elementos inesperados. Se trata de artculos que los clientes ni
siquiera saben que quieren, pero les encanta cuando los ven.
Los requisitos funcionales describen los servicios (funciones) que se esperan del
sistema: El sistema aceptar pagos con VISA
Los requisitos no funcionales son restricciones sobre los requisitos funcionales: El
sistema aceptar pagos con VISA de forma segura y con un tiempo de respuesta menor
de 5 segundos (si fuera de forma arbitaria dira: El sistema aceptar pagos con VISA a
travs del protocolo SET).
Orientados al
desarrollador: Disponibilidad, Portabilidad, Adaptabilidad, Testabilidad, Comprensibilidad,
otros.
Debemos tener en cuenta que se debe escribir los requisitos tanto positivos como
negativos. Los negativos es lo que el sistema NO va a realizar, ya que se
evita ambigedad y restringe el alcance, lo aclara desde el inicio.
Requerimientos de software y requisitos de sistemas
Los requisitos son formalmente documentados durante la fase de especificacin para que
puedan ser comunicados a los interesados del producto. La especificacin de requisitos
puede tomar una de muchas formas. Por ejemplo, en proyectos pequeos de la
informacin sobre los requisitos puede ser documentada en un solo documento de
Especificacin de Requisitos de Software (SRS). En proyectos ms complejos, los
requisitos pueden ser indicados en varios documentos. Por ejemplo:
Una buena prctica para la especificacin de los requisitos es contar con los requisitos
predefinidos, es decir, plantillas de especificacin. Estas plantillas permiten que el analista
de requisitos se centre en el contenido en lugar del formato y puede ayudar a garantizar
que los elementos clave no se pasan por alto. Otra buena prctica es utilizar una
herramienta de requisitos (o base de datos). Una herramienta de requisitos puede ser un
activo importante en tanto para la gestin y administracin de proyectos.
En el siguiente grfico observamos el proceso de Ingeniera de Requisitos en un modelo
de espiral.
Gestin de requisitos
En el dibujo, los cuadros redondeados son tareas. Los cuadrados son productos (inputs o
outputs). En el resto de esta presentacin se explicar cada componente de este
proceso. La separacin que aqu se ofrece es ms conceptual que real. Las
distintas tareas que se ejecutan durante el proceso de requisitos suceden en paralelo y
se solapan unas con otras. Por ejemplo, durante un proceso de elicitacin (obtener de una
manera provocada informacin de una fuente) de requisitos empleando prototipado, es
inevitable realizar una pequea validacin de los requisitos que se van obteniendo, o
incluso una pequea negociacin, si estamos tratando con varios usuarios a la vez.
I. ELICITACIN DE REQUISITOS
Se refiere a la capturay descubrimiento de los requisitos. Es una actividad ms humana
que tcnica, adems se identifican a los interesados (stakeholders) y se establecen las
primeras relaciones entre ellos. Los requisitos pueden proceder de varias fuentes como:
a verbalizarse. Ocurre tambin que a veces hay que inventar los requisitos, o
los sistemas orientados a miles de usuarios: web, mercado, son demasiado complejo en
relacin a los tiempos que se tiene para obtener la informacin. Esta etapa requiere que el
aprendizaje del conocimiento del negocio no sea pasivo, sino colaborativo.
Algunas tcnicas para obtener requisitos:
Modelizacin conceptual
Ciertos aspectos de los requisitos se expresan mediante modelos de datos, de control, de
estados, de interaccin, de objetos, etc. La meta es entender mejor el problema, ms que
iniciar el diseo de la solucin (idealmente). El tipo de modelo elegido depende de: La
naturaleza del problema, La experiencia del modelizador, La disponibilidad de
herramientas, Por decreto (El cliente impone una notacin).
Tradicionalmente se entenda que el anlisis se reduca a modelizar (DFDs, modelos de
objetos, etc), pero el anlisis de requisitos NO es exclusivamente un proceso de
modelizacin, como ya se ha dicho. Por otro lado, no existe la mejor forma de modelizar
requisitos. En realidad, no hay evidencia emprica que demuestre, en general, la
superioridad de unas notaciones de modelizacin frente a otras.
Negociacin de requisitos
En todo proceso de IR intervienen distintos individuos con distintos y, a veces,
enfrentados intereses. Estos conflictos entre requisitos se descubren durante el
anlisis. Incluso a veces, detrs de un requisito ambiguo lo que hay, en realidad, es un
conflicto no resuelto. Es durante el anlisis cuando muchos de los conflictos entre
requisitos son descubiertos. EL CONFLICTO NO ES RECHAZABLE y no debe resolverse
por decreto, sino mediante un proceso de negociacin. Desde este punto de vista,
los conflictos son positivos, pues SON FUENTE DE NUEVOS REQUISITOS.
Los acuerdos alcanzados deben ser convenientemente anotados, favorecindose as
la trazabilidad de los requisitos a sus orgenes (el requisito 987 surge como resultado de
la reunin entre x, y z el da tal del tal...) Existe, incluso, un subcampo de la IR dedicada
a este tipo de temas: la IR orientada a Puntos de Vista o Viewpoint-Based Requirements
Engineering.
1.
No ambigua: La ERS es no ambigua si todo requisito posee una sla
interpretacin
2.
Completa: Una ERS es completa si todo lo que se supone que el software debe
hacer est includo en la ERS. Por completitud, deberan describirse todas las
posibles respuestas a todas las posibles entradas y en todas las situaciones posibles.
Adems, la ERS no contendr secciones de tipo por determinar...
3.
Correcta: Todo requisito de la ERS contribuye a satisfacer una necesidad real.
4.
Comprensible: Todo tipo de lectores (clientes, usuarios, desarrolladores, equipo
de pruebas, gestores, etc.) entienden la ERS.
5.
Verificable: Si para cada requisito expresado en la ERS existe un procedimiento
de prueba finito y no costoso para demostrar que el futuro sistema lo satisface.
6.
Internamente Consistente: No existen subconjuntos de requisitos contradictorios.
7.
Externamente Consistente: Ninguno de los requisitos est en contradiccin con
lo expresado en documentos de nivel superior. Por ejemplo, en un
sistema (hardware+software), los requisitos del software no pueden contradecir los
requisitos del sistema.
8.
Realizable: Si, dados los actuales recursos, la ERS es implementable
9.
Concisa: La ERS debe ser lo ms breve posible, sin que esto afecte al resto
de atributos de calidad
10.
Independiente del diseo: Existen ms de un diseo e implementacin
que realizan la ERS. Para ello la ERS debera limitarse a describir el
comportamiento externo del sistema.
11.
Trazable: Cada requisito se puede referenciar de forma unvoca. Es
fundamental para precisar qu requisitos son implementados por qu componente del
diseo, lo cual es imprescindible a la hora de realizar las pruebas de dicho componente
12.
Modificable: Los cambios son fciles de introducir.
13.
Electrnicamente almacenada: Se encuentra en un archivo de texto, en una
base de datos o, mejor an, ha sido creada con una herramienta de gestin de
requisitos (RequisitePro, Doors, etc.)
14.
Ejecutable/Interpretable/Prototipable/Animable: Si existe una herramienta software
que, recibiendo como entrada la ERS, realice un modelo ejecutable de la misma. Aplicable
tan slo a ciertas notaciones como las notaciones formales o los diagramas de transicin
de estados.
15.
Anotada por importancia relativa: Si los requisitos se clasifican segn
su importancia. Como mnimo un requisito puede ser Obligatorio, Deseable u Opcional.
Esto sirve para no asignar demasiados recursos a la implementacin de requisitos no
esenciales.
16.
Anotada por estabilidad relativa: Los requisitos son, en general, inestables
y voltiles. A cada requisito se le asigna una probabilidad de cambio (p.ej. Alta, Media o
Baja). Esto ayudar a los diseadores a diferenciar los componentes ms flexibles de los
ms estables.
17.
Anotada por versin: Si un lector de la ERS puede determinar qu requisitos
sern satisfechos por qu versin del producto.
18.
No redundante: Cada requisito se expresa en un solo lugar de la ERS.
La redundancia, de todas formas, no es del todo mala si aumenta la legibilidad.
19.
Al nivel adecuado de abstraccin: Ni demasiado detallada ni demasiado vaga.
20.
Precisa: Una ERS es precisa si hace uso de valores numricos para precisar
las caractersticas del sistema. La precisin es aplicable, ante todo, a los requisitos
no funcionales. Por ejemplo, no es til decir El tiempo de respuesta ser ms
bien rpido, sino El tiempo de respuesta ser menor que dos segundos. En la prctica
diaria, la precisin es dificilsima de conseguir pues es fuertemente dependiente de la
tecnologa disponible, la cual no siempre se conoce al principio de un proyecto.
21.
Reutilizable: Si ciertas secciones de la ERS se pueden reutilizar
22.
Trazada: Si est claro el orgen de cada requisito (quin o qu lo pide)
23.
Organizada: Si el lector puede fcilmente encontrar la informacin buscada.
24.
Con referencias cruzadas: Si se utilizan referencias entre requisitos
relacionados (trazabilidad intra-ERS) o entre secciones relacionadas.
Debemos de considerar que una ERS perfecta es imposible, la calidad de la ERS es muy
difcil de cuantificar, en general, una ERS de calidad NO garantiza la ausencia de
problemas, pero una ERS psima
garantiza su presencia.
Inequvoca. Cada declaracin requisito debe tener una sola interpretacin, y cada
requisito se debe especificar de forma coherente, fcil de entender manera. Por ejemplo,
las bsquedas de autor de las palabras que terminan en "mente" (por ejemplo, rpida y
fcil de usar, de forma automtica), ya que los adverbios, por naturaleza, son casi siempre
ambiguos.
Conciso. Cada requisito debe ser declarado en breve, especfico, orientado a la
accin del idioma.
V. GESTIN DE REQUISITOS
Requirements Management (RM), consiste, bsicamente, en gestionar los cambios a los
requisitos. Esto asegura la consistencia ente los requisitos y el sistema construido (o en
construccin), pero consume grandes cantidades de tiempo y esfuerzo, y abarca todo el
ciclo de vida del producto.
Debemos de gestionar, porque entendemos que los requisitos son voltiles, el entorno
fsico cambia (en el caso de trasladar un sistema de un entorno a otro
requiere modificaciones), el entorno organizacional cambia (Las polticas
cambian, Cambios en las reglas y en los procesos del negocio provocan cambios en el
sistema), y la propia existencia del sistema va a generar nuevos requisitos por parte de
los usuarios.
Para la gestin debemos de definir lo siguiente:
Una lnea base (baseline) es un conjunto de requisitos que, mediante acuerdo entre las
partes implicadas, se ha decidido no modificar. Son aquellos requisitos ms importantes
que el desarrollador se compromete a implementar. A lo largo de un proceso de requisitos
pueden crearse (incrementalmente) varias lneas base.
Las herramientas de gestin de requisitos permiten gestionar fcilmente las lneas base.
Por ejemplo, los requisitos que forman parte de una lnea base no podrn
ser modificados, salvo por usuarios privilegiados.
Prefacio
Hoy el software es parte casi imprescindible de todo tipo de dispositivos. El software
se utiliza para proporcionar valor aadido a productos tradicionales
(telfonos, refrigeradores, coches) y para diferenciarse de los productos de la
competencia. Basta con decir que, hoy da, el componente ms complejo de un coche es
el software (por ejemplo, modelos de Mercedes contienen sistemas empotrados que
suman casi 5 Mbytes de cdigo ejecutable), Industrias tradicionalmente alejadas del
software hoy tienen problemas de requisitos. Introducir componentes software es distinto
a introducir nuevos componentes fsicos. La complejidad que aade el software es de
varios rdenes de magnitud respecto a la
complejidad que aadira un nuevo componente fsico.
Introducir el software en industrias tradicionales est produciendo choques
culturales. Estas industrias poseen tradiciones, normas y procedimientos que no son
aplicables al desarrollo de software. El mismo concepto de prototipo posee significados
muy distintos en Ingeniera Aeronutica, por ejemplo, y en Ingeniera del
Software. Muchas veces hay que desarrollar un software cuando no se conocen todos los
detalles del hardware u otros subsistemas. Adems, los plazos de entrega normalmente
son cortos e innegociables. Frecuentemente, deber trabajarse con una arquitectura
software lo suficientemente flexible (an a costa de su eficiencia) que permita incorporar
futuros aspectos: patrones que permitan un futuro plug-in de componentes, desarrollos
iterativos y/o incrementales, etc. [IEEE Computer, Nov. 2001].
1. Objetivo
la seccin 2
una correcta
los productos
la seccin 4
2. Tareas recomendadas
Las tareas recomendadas para obtener los productos son los siguientes:
2.1.1. Objetivos
2.1.2. Descripcin
2.2.1. Objetivos
2.2.2. Descripcin
Teniendo en cuenta la informacin recopilada en la tarea anterior, en
esta tarea prepararemos y realizaremos las reuniones con los clientes y
usuarios participantes con objeto de obtener sus necesidades y resolver
posibles conflictos que se hayan detectado en iteraciones previas del
proceso.
2.3.1. Objetivos
2.3.2. Descripcin
A partir de la informacin obtenida en la tarea anterior, en esta tarea se
debemos identificar qu objetivos esperamos alcanzar una vez que el
sistema software a desarrollar se encuentre en explotacin o revisarlos
en funcin de los conflictos identificados.
2.4.1. Objetivos
2.4.2. Descripcin
A partir de la informacin obtenida en la tareas 1 y 2, y teniendo en
cuenta los objetivos identificados en la tarea 3 y el resto de los
requisitos, en esta tarea debemos identificar, o revisar si existen
conflictos, qu informacin relevante para el cliente deber gestionar y
almacenar el sistema software a desarrollar as como qu restricciones o
reglas de negocio debe cumplir dicha informacin.
2.5.1. Objetivos
2.5.2. Descripcin
A partir de la informacin que obtengamos en las tareas 1 y 2, y
teniendo en cuenta los objetivos identificados en la tarea 3 y el resto de
los requisitos, en esta tarea identificaremos, o revisaremos si existen
conflictos, qu debe hacer el sistema a desarrollar con la informacin
identificada en la tarea anterior.
Casos de uso.
Plantilla para actores.
Plantilla para casos de uso.
Plantilla para requisitos funcionales.
2.6.1. Objetivos
2.6.2. Descripcin
A partir de la informacin obtenida en las tareas 1 y 2, y teniendo en cuenta los
objetivos identificados en la tarea 3 y el resto de los requisitos, en esta tarea
identificaremos, o revisaremos si existen conflictos en los requisitos no
funcionales, normalmente de carcter tcnico o legal.
Algunos tipos de requisitos que podemos incluir en esta seccin son los
siguientes:
Requisitos de fiabilidad
Los requisitos de fiabilidad deben establecer los factores que se
requieren para la fiabilidad del software en tiempo de explotacin.
La fiabilidad mide la probabilidad del sistema de producir una
respuesta satisfactoria a las demandas del usuario. Por ejemplo: la
tasa de fallos del sistema no podr ser superior a 2 fallos por
semana.
3. Productos entregables
El producto entregable es el Documento de Especificacin de requisitos
(DER).
3.1.1. Portada
La portada del DER tendr el formato que puede verse en la figura 3. Los
elementos aparecern son los siguientes:
Portada
Lista de cambios
ndice
Lista de figuras
Lista de tablas
1. Introduccin
2. Participantes en el proyecto
3. Descripcin del sistema actual
4. Objetivos del sistema
5. Catlogo de requisitos del sistema
5.1 Requisitos de informacin
5.2 Requisitos funcionales
5.2.1 Diagramas de casos de uso
5.2.2 Definicin de actores
5.2.3 Casos de uso del sistema
5.3 Requisitos no funcionales
6. Matriz de rastreabilidad objetivos/requisitos
7. Glosario de trminos
8. Conflictos pendientes de resolucin [opcional, pueden ir en un documento
aparte]
Apndices [opcionales]
Documento de
Requisitos del Sistema
Versin X:Y
Fecha fecha
Num
Fecha
descripcin
Autores
Fecha 0
Versin x.y
Autor 0
Fecha 1
descripcin
cambio1
Autor 1
Fecha N
descripcin
cambio N
Autor N
3.1.3. ndice
El ndice del DRS indicar la pgina en la que comienza cada
seccin, sub-seccin o apartado del documento. En la medida de
lo posible, sangraremos las entradas del ndice para ayudar a
comprender la estructura del documento.
3.1.5. Introduccin
Esta seccin contendr una descripcin breve de las principales
caractersticas del sistema software que se va a desarrollar, la
situacin actual que genera la necesidad del nuevo desarrollo, la
problemtica que se acomete, y cualquier otra consideracin que
site al posible lector en el contexto oportuno para comprender el
resto del documento.
3.1.19. Apndices
la mostramos a