Guia Didactica Analisis Req
Guia Didactica Analisis Req
Guia Didactica Analisis Req
Guía Didáctica
Análisis de Requerimientos
Septiembre, 2006
Índice
I. La Guía Didáctica...................................................................................................1
Introducción.....................................................................................................1
Objetivos de la Guía Didáctica........................................................................1
Instrucciones para el uso de la guía...............................................................1
II. La Unidad Curricular..............................................................................................1
Breve descripción de la Unidad Curricular.....................................................1
Objetivo General.............................................................................................2
Objetivos Específicos......................................................................................2
III. Contenido.............................................................................................................3
Tema I. Conceptos Básicos............................................................................3
Tema II. Elicitación de Requerimientos........................................................17
Tema III. Requerimientos Funcionales.........................................................51
Tema IV. Requerimientos No Funcionales...................................................60
Tema VI. Documento de Requerimientos.....................................................84
Tema VII. Estándares.................................................................................101
ii
iii
I. La Guía Didáctica
Introducción
El presente material ha sido desarrollado con la finalidad de proveer a los estudiantes,
documentación actualizada y relevante acerca del Análisis de Requerimientos. La guía
didáctica se elaboró partiendo de la recopilación de textos y publicaciones realizadas por
diversos autores, las cuales fueron, en muchos casos, traducidas y adaptadas al español
a fin de que pudiese ser comprendida por toda la comunidad estudiantil del Programa de
Informática para la Gestión Social.
1
importancia porque de ello depende, en buena medida, que el software responda
a las necesidades reales del usuario.
Objetivo General
Capacitar al estudiante para la obtención de la información en un dominio de
problema dado, haciendo uso de metodologías, técnicas y herramientas de la
Ingeniería de Requerimientos, como primer paso en el proceso de construcción
del Software.
Objetivos Específicos
2
▪ Aplicar los estándares para el modelado de sistemas, que permitan la
integración de diferentes sistemas.
III. Contenido
3
Introducción
El desarrollo de sistemas basados en computadoras ha estado plagado de
problemas desde 1960. Los sistemas suelen ser entregados fuera del plazo
establecido, sobrepasar el presupuesto, no hacen lo que los usuarios realmente
desean y a menudo la gente nunca los utiliza a su máxima capacidad. Pocas
veces existe una sola razón para estos problemas, pero sabemos que un factor
que contribuye de manera importante es el relacionado con la investigación de los
requerimientos de los sistema que van a ser automatizados.
Los requerimientos del sistema definen cuáles servicios debe proporcionar
el sistema y precisan los posibles conflictos en su implementación. Los problemas
comunes que se presentan con los requerimientos del sistema son los siguientes:
1) Los requerimientos no reflejan las necesidades reales de los usuarios del
sistema.
2) Los requerimientos son inconsistentes y/o incompletos.
3) Es costoso hacer cambios a los requerimientos, luego que han sido
aprobados.
4) Hay malentendidos entre los usuarios, los que desarrollan los
requerimientos del sistema y los ingenieros de software que construyen o
mantienen el sistema.
4
la ingeniería de requerimientos. Su rango va desde principios muy simples,
pudiera decirse que están basados en el sentido común (pero que son fáciles de
pasar por alto), pasando por las sugerencias para introducir nuevos métodos y
técnicas para descubrir y analizar los requerimientos del sistema.
Este capitulo introduce la noción de ingeniería de requerimientos 1 y mejoras
en el proceso de ingeniería de requerimientos. Para simplificar la presentación, se
organiza como un conjunto de preguntas y respuestas sobre el análisis de
requerimientos.
- Una característica muy general del sistema (por ejemplo: “el sistema debe
asegurarse que la información personal nunca esté disponible a un usuario
no autorizado”).
- Una necesidad específica del sistema (por ejemplo: “el tiempo de respuesta
de una operación debe ser inmediato”).
1
El término Ingeniería de requerimientos es usado en la literatura y en particular en el libro
referenciado, sin embargo otros autores prefieren hablar de análisis de requerimientos y reservar el
término “ingeniería” para el área más general “ingeniería de software”. Aquí se utilizarán
indistintamente.
5
Un requerimiento es una condición que debe incorporarse al sistema o
software a fin de dar respuesta a una problemática, satisfacer un estándar o una
especificación. La obtención de los requerimientos de un software, se produce a
través del empleo de diversas herramientas (técnicas de elicitación) que son
aplicadas a los usuarios y otros actores para conocer el flujo de la información. En
estos instrumentos se hace alusión a interrogantes como: ¿Qué es lo que se
hace?, ¿Cómo se hace?, ¿Con qué frecuencia se hace?, ¿Existe algún problema?
Los requerimientos deben manifestarse en forma concisa, precisa, identificable y
verificable a fin de que puedan contribuir a la definición de una solución óptima.
Algunas personas sugieren que los requerimientos siempre sean
descripciones de qué debe hacer el sistema, más que una descripción de cómo
debe hacerlo. Esta es una idea atractiva pero es demasiado simplista en la
práctica, ya que:
1) Los lectores de un documento de requerimientos pueden ser expertos, que
pueden relacionarse con las descripciones prácticas mucho mejor que con
descripciones muy abstractas del problema. En todo caso hay que escribir los
requerimientos de tal forma que sean comprensibles a esos lectores del
documento.
2) En casi todos los casos, el sistema que es especificado es solamente uno de
varios sistemas en un ambiente. Debe ser compatible con su ambiente, y
adaptarse a los estándares e inquietudes de la organización, puede que se
tengan políticas específicas de implementación las cuales limitan las opciones
de los analistas.
6
verifican y mantienen las necesidades de los usuarios de manera clara, sin
ambigüedades, en forma consistente y completa. Esta actividad se realiza desde
la primera etapa en el proceso de desarrollo de software y a lo largo del todo el
proceso de desarrollo.
La Ingeniería de Requerimientos en un término relativamente nuevo el cual
se ha inventado para cubrir todas las actividades involucradas en la elicitación,
documentación, análisis, verificación y mantenimiento de un conjunto de
requerimientos para un sistema basado en computadoras. Esta actividad se sitúa
en el dominio del problema. El uso del término ingeniería implica que deben ser
usadas técnicas sistemáticas y repetibles para asegurar que los requerimientos
del sistema sean completos, consistentes, relevantes, entre otros. Es usual utilizar
los términos Ingeniería de Requerimiento y Análisis de requerimientos para
referirse al mismo concepto. En la literatura en español también se encuentra la
palabra requisitos en lugar de requerimientos.
7
directivos y a todos los interesados en el sistema. Se obtiene como resultado de la
actividad de análisis (elicitación, etc.) y es un material que permite plasmar
tangiblemente las actividades desarrolladas y su resultado.
Dependiendo de la organización, el documento de requerimientos puede
tener diversos nombres tales como la especificación funcional, la definición de los
requerimientos, la especificación de requerimientos del software, entre otros. Se
usará, en lo sucesivo, el término Documento de requerimientos.
8
desarrollando. Puede que se requiera una especificación bastante general o una
especificación mucho más detallada.
En algunas organizaciones, los requerimientos primero se expresan como
descripción informal del alto nivel, que es desarrollada posteriormente en una
especificación más detallada. Los requerimientos generales son los
requerimientos de los usuarios y otros beneficiarios del sistema (todos los
involucrados o interesados en el sistema, usuarios finales, desarrolladores del
software, directivos involucrados, los que financian, etc.) y los requerimientos
detallados son una especificación de sistema más orientada a los desarrolladores.
1) Los requerimientos de los usuarios. Estos son requerimientos escritos desde el
punto de vista de todos los beneficiarios del sistema. Por lo general no son
expresados con gran detalle. Son descritos en lenguaje natural, diagramas
informales o usando alguna notación que es apropiada al problema que está
siendo solucionado.
2) Requerimientos del sistema. Estos son especificaciones más detalladas de los
requerimientos que pueden ser expresadas como un modelo abstracto del
sistema. Puede ser un modelo expresado mediante diagramas de UML. Estos
modelos siempre son comentados en lenguaje natural.
Generalmente es cierto que los requerimientos del sistema son más
detallados que los requerimientos orientados a los usuarios y otros interesados.
Sin embargo, hay excepciones y, en ambos casos, las exigencias pueden ser
descritas en detalle o de un modo abstracto o en cualquier forma intermedia.
9
restricción limita la funcionalidad u operatividad de algún componente del software
en desarrollo.
Un requerimiento funcional podría establecer que el sistema debe realizar
una tarea (por ejemplo: autenticar la identidad del usuario del sistema); un
requerimiento no funcional podría establecer restricciones sobre esa tarea (por
ejemplo: que el proceso de autenticación deba ser completado en cuatro
segundos o menos).
Sin embargo, no siempre es tan simple. El mismo requerimiento funcional
de autenticación podría tener un requerimiento suplementario que establezca el
uso de un sistema específico de verificación de firma (el cual se sabe que trabaja
en menos de cuatro segundos) para la autenticación. Esto podría ser interpretado
como un requerimiento funcional o no funcional según la definición anterior. Los
requerimientos no funcionales de alto nivel a menudo son traducidos en
requerimientos funcionales del sistema.
10
Recomendamos que se realice una lista explicativa de beneficiarios en la
primera etapa de su proceso de análisis de requerimientos.
11
La definición de un proceso de análisis de requerimientos apropiado para la
organización beneficiará a la misma. Una buena descripción del proceso
proporcionará una dirección a las personas implicadas y reducirá la probabilidad
que las actividades sean olvidadas o realizadas de un modo superficial.
1.11 ¿Como reconozco los problemas del Proceso de Ingeniería de
Requerimientos?
Puede reconocer problemas del proceso que sigue en el análisis de
requerimientos, con la información sobre el proceso y/o la información sobre el
producto.
Si su respuesta es “sí” para alguna o todas las preguntas siguientes, debe
mejorar el proceso del análisis de Requerimientos.
1. ¿Su proceso de análisis de requerimientos generalmente está sobre
presupuestado y/o toma más tiempo de lo estimado?
2. ¿Las personas implicadas en el análisis de requerimientos se quejan de
que no tienen suficiente tiempo o recursos para hacer su trabajo
correctamente?
3. ¿Hay quejas sobre la comprensión o el acabado de los Documentos de los
Requerimientos que se elaboran?
4. ¿Los diseñadores de sistema se quejan de tener que hacer cambios
constantemente como resultado de los errores en los requerimientos?
5. ¿Los usuarios de sus sistemas no pueden utilizar todas las capacidades del
sistema?
6. ¿Hay un volumen muy alto de peticiones de cambio inmediatamente
después que un sistema se entrega a los usuarios?
7. ¿Toma mucho tiempo modificar el sistema para nuevos requerimientos?
Si su respuesta es no a todas estas preguntas, puede parar de leer ahora.
No necesita los consejos de este libro.
12
1.12 ¿Pueden sugerir un buen proceso de Ingeniería de Requerimientos?
No podemos sugerir nada sin conocer antes la organización3, sus
estándares, el proceso de desarrollo de software que adelantan y el tipo de
software a desarrollar. Hay muchos caminos posibles para organizar el proceso de
análisis de requerimientos y no se pueden pasar de una organización a otra. Para
definir un buen proceso de análisis de requerimientos, usted necesita involucrar a
las personas de su organización que están relacionadas con el sistema a
desarrollar. Debería buscar ayuda de otros especialistas, ellos pueden tener otra
perspectiva del sistema que aquellos involucrados en el proceso.
La mayoría de los estándares que se han desarrollado para la Ingeniería de
Requerimientos se refieren a salidas del proceso, tales como la estructura del
Documento de Requerimientos. Sin embargo, un buen proceso de la Ingeniería de
Requerimientos debe incluir las actividades siguientes:
1. Elicitación de requerimientos. Los requerimientos del sistema se descubren
con la consulta a los usuarios y otros beneficiarios, los documentos del
sistema, el conocimiento del dominio y de estudios de mercado.
3
A lo largo del tema nos hemos referido a las organizaciones en forma genérica, ello puede
significar empresas, instituciones, dependencias gubernamentales, educativas, etc., así como
organizaciones más informales: de las comunidades, organizaciones temporales en función de
objetivos inmediatos, etc.
13
1.13 ¿Cómo se relaciona el análisis de requerimientos con las otras
actividades en el proceso de desarrollo del software?
La Ingeniería de Software posee etapas fundamentales que comprenden el:
análisis, diseño, programación, prueba y mantenimiento del Software. La etapa de
análisis es muy importante, ya que en ella se genera una fluida comunicación con
el usuario –y otros interesados en el sistema- y se revelan las necesidades del
sistema, se define el objetivo, los alcances, su factibilidad y se establecen todas
las funcionalidades. El proceso de desarrollo del software se basa en la
documentación producida en el análisis de requerimientos, y puede pensarse que
es la entrada al proceso, sin embrago a lo largo del mismo se pueden descubrir
nuevos requerimientos, o se modifican, constituyendo un proceso iterativo en este
sentido.
14
1.15 ¿En que consiste la gestión de requerimientos?
La gestión de requerimientos tiene que ver con todo el proceso involucrado
en los cambios de los requerimientos. Para ello se definen políticas para la gestión
de los cambios, se identifican los requerimientos volátiles, los requerimientos
globales, etc.
Una revisión regular puede ayudar mientras se realiza la definición de
requerimientos. Tanto el usuario como el equipo de desarrollo deben estar
involucrados en la revisión. Esta revisión debe ser formal (con los documentos
completos) o informal. Una buena comunicación entre desarrolladores y usuarios
puede resolver problemas en las primeras etapas.
Al momento de realizar la revisión de los requerimientos se pueden
responder, para cada requerimiento, las siguientes preguntas:
- ¿Es el requerimiento realmente necesario?
- requerimientos?.
15
existentes. Pueden ser introducidas sin comprometer ninguna certificación de la
ISO 9000.
Bibliografía
- Ian Sommerville y Pete Sawyer. Requirements Engineering. A Good
Practice Guide. Lancaster University. Ed. Jhon Wiley &sons,1998
- Senn, James A. Análisis y Diseño de Sistemas de Información. Segunda
Edición. McGraw Hill. 1992.
- Durán A. y Bernárdez B. Metodología para la Elicitación de Requisitos de
Sistemas Software Versión 2.3. Universidad de Sevilla. Abril 2002.
URL:
http://www.lsi.us.es/~amador/publicaciones/metodologia_elicitacion_2_3.pdf
.zip.
- Soren Lauesen. Software Requirements. Styles and Techniques.
Samfundslitteratur, 1999
16
Tema II. Elicitación de Requerimientos
Versión: 1.2
17
3. Durán A. y Bernárdez B. Metodología para la Elicitación de Requisitos
de Sistemas Software Versión 2.3. Informe Técnico LSI-2000-10
(revisado). Universidad de Sevilla. Abril 2002.
URL:
http://www.lsi.us.es/~amador/publicaciones/metodologia_elicitacion_2_3.pdf.zip
4
Una interpretación del término stakeholder pudiera ser usuarios y otros beneficiarios en el sistema
(clientes, directivos, desarrolladores, equipo de soporte técnico, etc.). En alguna literatura se le
traduce como actores, pero entra en conflicto con el significado del mismo término en el modelo de
casos de uso, sin embargo puede utilizarse, entendiendo el contexto.
18
muestran posibles soluciones y finalmente se establecen los requerimientos a
partir de la información recolectada.
El propósito del nuevo sistema es servir a los usuarios y otros beneficiarios,
generalmente de una organización5 entonces ¿Porqué no preguntarle, a ellos, que
necesitan?, desafortunadamente esto no es tan fácil, y de allí que se proponen
diversas técnicas.
5
A lo largo del tema nos referimos a las organizaciones en forma genérica, ello puede significar
empresas, instituciones, dependencias gubernamentales, educativas, etc., así como
organizaciones más informales: de las comunidades, grupo de personas que se unen para fines
específicos, etc.
19
transformó en una herramienta indispensable. Parte de la resistencia era
simplemente la dificultad de imaginar una nueva forma de trabajo.
- Una vez que el analista logra involucrar a los distintos grupos de usuarios y
otros beneficiarios en el proceso de identificación de los requerimientos, puede
surgir otro problema. Cada grupo establece requerimientos diferentes. algunos
de ellos son esenciales, otros son no relevantes. Puede ser difícil que todos los
actores estén de acuerdo en lo que es esencial y lo que no es. Son diferentes
visiones.
- Las demandas cambian con el tiempo, los factores externos cambian y las
prioridades también. Una vez que una necesidad es satisfecha, nuevas
demandas aparecen.
20
Un producto de este trabajo muy importante es la lista de exigencias y
metas críticas. Estos son los requerimientos informales que serán luego serán
verificados.
21
punto de vista más técnico y encuentran difícil el hecho de relacionarse con la
política intangible de organización.
Cuando se realice la elicitación de requerimientos, existen un número de
cosas que se deben observar, en particular aspectos políticos y de la organización
que pueden tener influencia sobre los requerimientos, puede señalarse:
- Metas conflictivas. Puede suceder que no todas las personas dentro de la
organización tengan las mismas metas. Trate de entender las razones.
- Las relaciones de poder y el impacto del nuevo sistema. Puede suceder que
este impacto signifique transferencias –o pérdidas- de responsabilidades en
algunos actores, ello puede revelarse en la elicitación de requerimientos por las
sugerencias de éstos. De allí que debe tratarse de entender la estructura de
poder en la organización.
- La Cultura Organizacional y si ella abarca a todo el colectivo o a partes de
éste.
- Actitudes de la Dirección y la moral de la organización. Si la organización pasa
por un período difícil, la gente puede ser hostil a esta Dirección y pueden estar
indispuestos a participar en el proceso de cambio.
22
- Identificando los grupos de beneficiarios e incorporándolos al proceso de
análisis, con mayor probabilidad se logrará que sean comprensivos a la
introducción del sistema y colaboren dando información de interés y aportando
los requerimientos desde su punto de vista.
23
o JAD); la tormenta de ideas (brainstorming) y la utilización de escenarios. A estas
técnicas, que se describen en las siguientes secciones, se las suele apoyar con
otras técnicas complementarias como la observación in situ, el estudio de
documentación, los cuestionarios, la inmersión en el negocio del cliente, entre
otras.
2.5.1. Entrevistas
24
c) Entrevistas semiestructuradas: es una estrategia mixta, con preguntas
estructurales y con preguntas no estructurales. La parte estructurada proporciona
una base informativa. La parte no estructurada añade interés al proceso y permite
un conocimiento inicial de características específicas.
25
ayuden a romper el hielo. ¿A quién entrevistar para obtener información acerca del
trabajo actual y los problemas presentes?. Preferiblemente algunos miembros de
cada grupo de actores. Hay que entrevistar no solo a representantes oficiales, la
experiencia demuestra que muchos de estos representantes desconocen lo que
realmente sucede en la organización diariamente. Obtener información del
verdadero usuario final es importante.
26
2) Realización de entrevistas
Dentro de la realización de las entrevistas se distinguen tres etapas: Apertura,
desarrollo y terminación.
• Apertura: el entrevistador debe presentarse e informar al entrevistado sobre la
razón de la entrevista, qué se espera conseguir, cómo se utilizará la
información, la mecánica de las preguntas, etc. Si se va a utilizar algún tipo de
notación gráfica o matemática que el entrevistado no conozca, debe explicarse
antes de utilizarse. Es fundamental causar buena impresión en la primera
entrevista.
• Desarrollo: la entrevista debe tener un lapso prefijado, distribuyendo el tiempo
en un 20% para el entrevistador y un 80% para el entrevistado. Se deben evitar
los monólogos y mantener el control por parte del entrevistador, contemplando
la posibilidad de que una tercera persona tome notas durante la entrevista o
grabar la entrevista en cinta de vídeo o audio, siempre que el entrevistado esté
de acuerdo. Hay aspectos éticos a considerar: si se va a grabar la entrevista,
se debe tener muy presente que el equipo de grabación debe estar en perfecto
estado y el entrevistador debe saber manejarlo y cuando se reproduce la
grabación no se pueden cambiar ni corregir las respuestas suministradas por
los entrevistas, bajo ninguna circunstancia. ¿Qué preguntar?. Inicialmente,
formular preguntas abiertas acerca del trabajo diario, y otros aspectos de la
lista de cosas a elicitar. Asegurándose de preguntar sobre las tareas críticas:
¿cuándo es realmente importante que los resultados sean 100% correctos?.
Difícilmente se pueden identificar estos detalles con la observación, hay que
preguntarles a los usuarios.
Durante esta fase se deben considerar los siguientes aspectos:
- Realizar preguntas abiertas, también denominadas de libre contexto, estas
preguntas no pueden responderse con un "sí" o un "no", permiten una
mayor comunicación y evitan la sensación de interrogatorio. Estas
preguntas se suelen realizar al comienzo de la entrevista, pasando
posteriormente a preguntas más concretas. En general, se debe evitar la
tendencia a anticipar una respuesta a las preguntas que se formulan.
- Utilizar palabras apropiadas, evitando tecnicismos que no conozca el
entrevistado y palabras o frases que puedan perturbar la comunicación.
- Mostrar interés en todo momento, cuidando la comunicación gestual
durante la entrevista: movimiento, expresión facial, etc. Por ejemplo, para
animar a alguien a hablar puede asentirse con la cabeza, decir "ya
entiendo", "sí", repetir algunas respuestas dadas, hacer pausas, poner una
27
postura de atención, etc. Debe evitarse bostezar, reclinarse en el sillón,
mirar hacia otro lado, etc.
• Terminación: al terminar la entrevista se debe recapitular para confirmar que
no ha habido confusiones en la información recogida, agradecer al entrevistado
su colaboración y citarle para una nueva entrevista si fuera necesario, dejando
siempre abierta la posibilidad de volver a contactar para aclarar dudas que
surjan al estudiar la información o al contrastarla con otros entrevistados.
28
alternativa a las entrevistas individuales que se desarrolla a lo largo de un conjunto
de reuniones en grupo durante un periodo de uno o varios días. En estas
reuniones se ayuda a los usuarios y otros beneficiarios a formular problemas y
explorar posibles soluciones, involucrándolos y haciéndolos sentirse partícipes del
desarrollo. Esta técnica se base en cuatro principios [Raghavan et al. 1994]:
- dinámica de grupo,
- el uso de ayudas visuales para mejorar la comunicación (diagramas,
transparencias, multimedia, herramientas CASE, etc.),
- mantener un proceso organizado y racional
- una filosofía de documentación WYSIWYG (What You See Is What You Get, lo
que tu ves es lo que tu encuentras), por la que durante las reuniones se trabaja
directamente sobre los documentos a generar.
El JAD tiene dos grandes pasos, el JAD/Plan cuyo objetivo es elicitar y
especificar requerimientos, y el JAD/Design, en el que se inicia el proceso de
diseño del software. En este documento sólo se verá con detalle el primero de
ellos. Debido a los aspectos de organización que requiere y a que no suele
adaptarse bien a los horarios de trabajo de los clientes y usuarios, esta técnica no
suele emplearse con frecuencia, aunque cuando se aplica suele producir buenos
resultados, especialmente para elicitar requerimientos en el campo de los
sistemas de información.
En comparación con las entrevistas individuales, presenta las siguientes
ventajas:
• Ahorra tiempo al evitar que las opiniones de los usuarios y otros beneficiarios
se contrasten por separado.
• Todo el grupo revisa la documentación generada, no sólo los analistas de
requerimientos.
• Implica más a los usuarios y otros beneficiarios en el desarrollo.
29
importantes que debe poseer: entender y promover la dinámica de grupo,
iniciar y centrar discusiones, reconocer cuándo la reunión se está desviando
del tema y reconducirla, manejar las distintas personalidades y formas de ser
de los participantes, evitar que decaiga la reunión aunque sea larga y difícil,
etc.
• Analista: es el responsable de la producción de los documentos que se deben
generar durante las sesiones. Debe tener la habilidad de organizar bien las
ideas y expresarlas claramente por escrito. En el caso de que se utilizan
herramientas software durante las sesiones, debe ser capaz de manejarlas
eficientemente.
• Gerente o Directivo: es el que tiene la decisión final de que se lleve a cabo el
desarrollo. Debe proporcionar a los demás participantes información sobre la
necesidad del nuevo sistema y los beneficios que se espera obtener de él.
• Los usuarios: las personas que utilizarán el sistema
• Representantes de sistemas similares: son personas expertos en sistemas que
deben ayudar a los usuarios a comprender qué es o no factible con la
tecnología actual y el esfuerzo que implica.
• Especialistas: son personas que pueden proporcionar información detallada
sobre aspectos muy concretos, tanto del punto de vista de los usuarios, porque
conocen muy bien el funcionamiento de una parte de la organización, como
desde el punto de vista de los desarrolladores porque conocen ciertos
aspectos de la tecnología de la organización.
30
El facilitador debe decidir la duración y el número de sesiones a celebrar,
definir el formato de la documentación sobre la que se trabajará y preparar
transparencias introductorias y todo el material audiovisual que considere
oportuno.
31
3) Conclusión: Una vez terminadas las sesiones es necesario transformar las
transparencias, notas y demás documentación generada en documentos formales.
Se distinguen tres pasos:
a) Completar la documentación: los analistas recopilan la documentación
generada durante las sesiones en documentos conformes a las normas o
estándares vigentes en la organización para la que se desarrolla el proyecto.
b) Revisar la documentación: la documentación generada se envía a todos los
participantes para que la comenten. Si los comentarios son lo suficientemente
importantes, se convoca otra reunión para discutirlos.
c) Validar la documentación: una vez revisados todos los comentarios, el
facilitador envía el documento al patrocinador ejecutivo para su aprobación.
Una vez aprobado el documento se envían copias definitivas a cada uno de los
participantes.
El facilitador anota todas las ideas en una pizarra. Pronto cada idea
generará otras ideas, algunas interesantes, otras prometedoras y otras sin sentido
común. Una regla importante del juego es no criticar ningún planteamiento. Incluso
ideas aparentemente descartables pueden convertirse en la semilla de otras ideas
interesantes.
Durante la elicitación, el interés está puesto en ideas para el nuevo sistema. Si la
creatividad no surge en la sesión, el analista puede introducir ideas que han
surgido mediante otras técnicas. El facilitador puede culminar la sesión con una
ronda donde se prioricen las ideas.
32
2.5.3.1 Ventajas de la Tormenta de Ideas sobre el JAD
- Es muy fácil de aprender
- Requiere poca organización, de hecho, hay propuestas de realización de
Tormentas de ideas por vídeo conferencia a través de Internet .
Por otro lado, al ser un proceso poco estructurado, puede no producir resultados
con la misma calidad o nivel de detalle que otras técnicas. Pero estimula
fuertemente la creatividad y pueden salir ideas innovadoras.
33
- Se debe generar un gran número de ideas, ya que cuantas más ideas se
presenten, más posibilidades de análisis se tendrá.
- Se debe alentar a los participantes a combinar o completar las ideas de otros
participantes. Para ello, es necesario, al igual que en la técnica del JAD, que
todas las ideas generadas estén visibles a todos los participantes en todo
momento. Una posibilidad es utilizar como semilla objetivos del sistema e ir
identificando requerimientos. Estos requerimientos se deben recoger en
plantillas para que los participantes tengan visibles las ideas que se van
generando.
3) Consolidación: en esta fase se deben organizar y evaluar las ideas generadas
durante la fase anterior. Se suelen seguir tres pasos:
a) Revisar ideas: se revisan las ideas generadas para clarificarlas. Es habitual
identificar ideas similares, en cuyo caso se unifican en un solo enunciado.
b) Descartar ideas: aquellas ideas que los participantes consideren no adecuadas
se descartan.
c) Priorizar ideas: se priorizan las ideas restantes, identificando las absolutamente
esenciales, las que estarían bien pero que no son esenciales y las que podrían
ser descartarse.
2.5.5 Observación
En las entrevistas el usuario puede dar explicaciones lógicas pero que no
se corresponden a la realidad. La observación sirve para comprobar la información
obtenida en entrevistas.
El analista puede pasar cierto tiempo con los usuarios, observando las
tareas diarias. En algunos casos, los analistas usan grabadores o cámaras de
34
vídeo (con el permiso de los usuarios) para prolongar el período de la observación.
Esto tiene la ventaja de que puede revisar las cintas con el usuario y aclarar
cualquier duda.
La observación mejora los conocimientos del trabajo actual y de algunos
problemas en el trabajo. Desafortunadamente, las situaciones y las tareas críticas
frecuentemente se escapan de la observación.
Una variante de la entrevista y la observación es la demostración de tareas.
Se le puede pedir al usuario que demuestre como ejecuta una tarea específica.
2.5.6 Cuestionarios
El cuestionario es una manera de obtener información de muchas personas.
Puede usarse de varias formas: para obtener evidencia estadística o reunir
opiniones y sugerencias.
En el segundo caso, formule preguntas abiertas. Esencialmente, puede
hacer las mismas preguntas como en una entrevista, ejemplo “¿Cuál es el mayor
problema en tu trabajo diario?” o “¿Cuáles son sus sugerencias para mejorar el
soporte tecnológico en tu trabajo diario?”. Estos resultados pueden ser un poco
difíciles de interpretar. Las personas consultadas pueden haber mal interpretado
las preguntas y de igual forma se puede mal interpretar las respuestas. Durante la
entrevista, se puede comprobar si se está entendiendo lo planteado y reformular
preguntas. También es difícil clasificar los resultados de las preguntas abiertas si
no ve conoce el contexto.
El riesgo de no comprender bien es aún mayor con preguntas de tipo
cerradas. Para reducir el riesgo, es esencial conocer bien el dominio.
35
El resultado de los talleres, puede ser un perfil o un prototipo, diagramas de
casos de uso, etc. Usualmente, el analista debe finalizar convirtiendo los
resultados en requerimientos. Como efecto secundario del taller, se pueden
identificar las metas y situaciones críticas.
Un problema con los talleres es que los participantes pueden
comprometerse mucho con la solución allí planteada. ¿Por qué esto es un
problema?: porque en su entusiasmo, ellos pueden olvidar otros aspectos, tales
como si la solución es técnicamente factible, o si otros actores entienden la
solución. Y ello puede causar conflictos con ellos.
2.5.8 Prototipaje
Un prototipo es una versión simplificada de parte del sistema final. Los
usuarios y otros beneficiarios experimentan con prototipos para tener una idea de
cómo funcionaría en la vida real. El prototipaje puede ser a nivel de la interfaz del
sistema, en este sentido se exploran los elementos de la interacción con el
usuario. Este prototipaje puede ser de baja o alta fidelidad. En el primer caso se
tendrán bocetos a lápiz y papel, en el segundo se tendría una interfaz elaborada
con las herramientas en que se desarrollará el sistema, aún cuando sea una
versión simplificada de la interfaz de usuario del sistema.
Otras partes del sistema pueden ser objeto de prototipaje. Como por
ejemplo, si el sistema debe comunicarse con otro producto existente, el prototipaje
de la comunicación puede revelar mucho: ¿cuáles son los tiempos de respuesta
real?, etc.
36
En este caso, la mayoría de los riesgos pueden ser eliminados a través de
una prueba piloto. Una pequeña parte de la organización usa el nuevo sistema en
un período de prueba y cambia sus procedimientos de trabajo. El grupo de
analistas observa el resultado y evalúa el costo y beneficio del nuevo sistema.
Usualmente, dicho grupo sugiere también formas diferentes de hacerlo al ampliar
su uso a toda la organización.
Si el experimento es exitoso, se crea un acuerdo de compromiso. El grupo
de analistas también ayuda a identificar los requerimientos faltantes y las
prioridades.
2.5.11 Negociación
El propósito de la negociación es resolver conflictos. Estos puede ser
conflictos entre el proveedor y el usuario, pero los conflictos más difíciles se
presentan frecuentemente entre los distintos grupos de beneficiarios del sistema,
dentro de la misma organización.
Los conflictos entre los proveedores y el usuario están usualmente
relacionados con costos, beneficios, y quién corre el riesgo. Los conflictos dentro
37
de la organización pueden ser de otra índole, como por ejemplo, conflictos de
poder, conflictos con otros proyectos.
En un grupo de discusión que trabaje en la resolución de los conflictos tiene
que participar miembros de cada grupo que interviene en el conflicto. Para que
sea productivo el encuentro, las partes en conflicto deben estar dispuestas a
dialogar y entenderse unos a otros, de otra manera el trabajo preliminar debe ser
elaborado en términos individuales o asignarles todas las responsabilidades a
personas de un nivel superior en la organización.
Hay muchas estrategias disponibles para resolver conflictos, por ejemplo
que cada grupo explique lo que ellos creen que los otros participantes quieren y
porqué.
Desde el punto de vista de los requerimientos, lo más importante es
analizar las metas de cada grupo. Habitualmente, los conflictos se centran en las
soluciones, auque cada grupo puede aceptar las metas de los otros grupos. La
estrategia es encontrar la solución que no genere conflicto, pero que apoye las
metas de todos (una situación de ganar-ganar).
38
cuando no se distingue el propósito de los requerimientos. Pueden eliminarse
requerimientos, si ninguna tarea parece necesitarlo. En otros casos el propósito
del requerimiento no es tan importante, luego se le puede dar una prioridad baja.
39
identifican los problemas prioritarios por cada grupo. Estos grupos deben formarse
en los inicios del proyecto.
El analista debe conocer el área de aplicación (dominio) e identificar los
grupos de posibles beneficiarios del sistema.
Pasos a realizar:
1) Invitar participantes: Invitar entre 6 y 18 personas para un taller. Asegúrese que
cada grupo de beneficiarios esté representado (si invita a proveedores no debe
sobrepasar la tercera del parte del grupo de trabajo.
2) Iniciar la reunión: Al comienzo de la reunión presentar el tema, presentar a los
participantes y lograr un ambiente en el que se sientan cómodos.
3) Identificar malas experiencias: Conduzca la discusión hacia la discusión de las
malas experiencias apoyándose en productos, actividades del dominio, etc.
Registre los planteamientos. Su rol principal como facilitador es asegurar que
nadie domine al grupo y que todos tengan la oportunidad de formular su
planteamiento. Su propio equipo debe tener una participación discreta.
4) Imaginar el futuro: Cambie el escenario para imaginar la solución ideal. ¿Si
usted pudiese obtener lo que desea en ésta área, que solicitaría? Permita
ideas extravagantes. Trate de obtener una visión de porqué las personas
desean las metas planteadas, especialmente en caso de ideas extravagantes.
Pregunte: ¿desde cuándo desea eso?, ello puede llevar a descubrir la
verdadera necesidad que envuelve la idea formulada. Registre las ideas y su
justificación.
5) Liste las necesidades: En esta etapa se pueden recolectar muchas
necesidades. Elabore una lista de necesidades que sean requeridas por todos,
que contenga: ideas, aspectos negativos, requerimientos y justificación.
40
Fusione necesidades casi idénticas. Esto es un trabajo arduo y toma algún
tiempo hacerlo. Permita a los participantes tomar un descanso entre tanto.
6) Priorizar las necesidades: Solicite a cada grupo de beneficiarios que seleccione
las 10 necesidades más importantes de la lista elaborada y las ordene según la
prioridad. Usted puede solicitarles elaborar una lista conjunta. La lista puede
comprender ideas, problemas a resolver, requerimientos.
7) Repase la lista: Finalice la sesión comentando las prioridades designadas por
los otros grupoide beneficiarios. Revise y combine los problemas y
necesidades.
41
R1: Después de una práctica de X horas, el usuario debe ser capaz de desarrollar
la tarea Y, en al menos Z minutos. El paso final es seleccionar los aspectos
faltantes, por ejemplo los valores de X, Y, Z.
A continuación se presenta una matriz que muestra la relación de las técnicas de
elicitación y su efectividad respecto a lo que se va elicitar.
Matriz técnicas de elicitación/ aspectos a elicitar
Posibilidades reales
Requerimientos Completos
Resolución de conflictos
Trabajo actual
Problemas presentes
críticasMetas/ y decisiones
Requerimientos
Prioridades
Compromisos
Aspectos a
elicitar
Técnicas
Entrevista (en
grupo)
Observación
Demostración de
tareas
Estudio de
documentos
Cuestionarios
Tormenta de ideas
Grupos principales
Talleres
Prototipos
Pruebas pilotos
Estudio de
compañías
similares
Negociación
Análisis de metas
QFD
Necesidades-
Requerimientos
42
Con el uso de patrones, se consigue que durante las sesiones de elicitación
los participantes manejen directamente la documentación final, favoreciéndose así
su implicación en el proceso. Como fruto de la experiencia de su utilización, para
algunos campos de las patrones se han identificado frases estándar que son
habituales en las especificaciones de requerimientos y que se han parametrizado.
Estas frases, a las que hemos denominado patrones lingüísticos, pueden usarse
para rellenar los campos de las plantillas dándole valores a los parámetros con la
información oportuna.
43
- requerimientos de información
- conflictos.
6
no todos los campos son obligatorios, depende del problema –y del nivel de la solución- cuales
considerar.
44
- Estabilidad: este campo indica una estimación de que pueda sufrir cambios en
el futuro. Se califica como: alta, media, baja o por determinar. Es muy
importante por cuando permite prever la anticipación al cambio, favoreciendo el
mantenimiento y la evolución del software.
- Comentarios: cualquier otra información.
OBJ.
….. …….
Descripción El sistema deberá…..<objetivo a cumplir por el sistema>
Sub-objetivos •<nombre del sub-objetivo>
•…..
Figura 2. Planilla de objetivos
45
-
Ejemplo.
objetivo
O5 Gestión de socios
Descripción El sistema deberá mantener la información de los socios:
su inclusión, retiro y modificaciones
Estabilidad alta
Req-F o
Req-NF
… ….
Objetivos •<nombre del objetivo>
asociados
•……
Requerimientos •<nombre del requerimiento>
asociados
•…..
46
Urgencia alta
Req-I
…. ……
Objetivos •<nombre del objetivo>
asociados
……
Requerimientos •<nombre del requerimiento>
asociados
…..
Descripción El sistema deberá almacenar la información
correspondiente a <concepto relevante>
Datos •<datos específicos sobre el concepto relevante>
específicos
•……
Tiempo de vida <tiempo medio>, <tiempo máximo>
Ocurrencias <n° medio de ocurrr. simult.>,
simultáneas < n° máximo de ocurrr. simult.>
Figura 4. Planilla para requerimientos de almacenamiento
Ejemplo:
Req-I
12 Información sobre socios
Objetivos Gestión de socios (obj-08)
asociados
Req •Retiro de socio (RF-04)
asociados •Ingreso de socio (RF-09)
•Modificación de los datos del socio (RF-10)
47
•Consulta sobre socios (RF-12)
Descripción El sistema deberá almacenar la información de los socios
Datos •Número del socio
específicos •C.I.
•nombre y apellido
•dirección
•teléfono
•películas actualmente alquiladas
Estabilidad alta
48
Bibliografía
- Ian Sommerville y Pete Sawyer. Requirements Engineering. A Good Practice
Guide. Cap. 4. Lancaster University. Ed. Jhon Wiley &sons, 1998.
www.comp.lancs.ac.uk/computing/resources/re-gpg/
- Soren Lauesen. Software Requirements. Styles and Techniques. Cap. 4.
Samfundslitteratur, 1999
- Durán A. y Bernárdez B. Metodología para la Elicitación de Requisitos de
Sistemas Software Versión 2.3. Informe Técnico LSI-2000-20 (revisado).
Universidad de Sevilla. Abril 2002.
URL:
http://www.lsi.us.es/~amador/publicaciones/metodologia_elicitacion_2_3.pdf.zip
URL de interés:
- Universidad de Texas. JAD: Austin.
http://www.utexas.edu/hr/is/pubs/jad.html#what
- Caja de herramientas de Gestión MYPIME. Guatemala. Tormenta de ideas:
http://www.infomipyme.com/Docs/GT/Offline/inicioempresa/brainstormi.htm
- Potenciación Comunitaria. Tormenta de ideas: Phil Bartre phd.
http://www.scn.org/mpfc/modules/brn-ints.htm
- Universidad de Sevilla. 2005. (Curso sobre análisis de requerimientos):
http://www.lsi.us.es/docencia/pagina_asignatura_doc.php?id=20&cur=2004
49
50
Tema III. Requerimientos Funcionales
Versión: 1.1
Realizado por:
Profa. Ana María Padrón
Revisado por:
Prof. Nancy Zambrano UCV
Fecha:
Mayo de 2006
51
3.1 Requerimientos Funcionales
Los requerimientos funcionales definen el comportamiento interno del
software, es decir, sus tareas o funciones. Un requerimiento funcional se describe
con un nombre único, un breve resumen y una explicación, lo cual ayudará a
entender el requerimiento y hacerle seguimiento a lo largo del desarrollo del
software (trazabilidad). Al definir el requerimiento funcional se debe describir el
comportamiento que tendrá el software de forma clara y legible.
3.3.1 Ejemplos
1) En el sistema telefónico celular algunos requerimientos funcionales son:
a) Recibir llamadas
b) Hacer llamadas
c) Enviar mensajes
d) Recibir mensajes
e) Conectarse a Internet
52
d) Pegar
e) Cambiar el formato al texto
53
Sistema
Caso de uso A
Caso de uso B
Actor 1 Actor 2
Caso de uso C
Figura 1. Diagrama de casos de uso
54
include B
A
Ir al cine Comprar
entrada
extend
B: Ir al A: Comprar
cine cotufas
55
3.7 Organización de casos de uso
En la mayoría de sistemas, el número de casos de uso es lo
suficientemente elevado como para que sea oportuno organizarlos de alguna
forma, en lugar de tener una lista plana por la que no es fácil navegar. Una posible
forma de organizar los casos de uso es recurrir a los paquetes descritos en UML.
De esta forma, los casos de uso pueden organizarse en niveles, facilitando así su
comprensión.
Cada paquete contiene a otros paquetes o a varios casos de uso. Cuando
los casos de uso se agrupan por criterios funcionales, los paquetes que los
contienen pueden denominarse subsistemas, como se ve en la siguiente figura:
56
– El sistema registra y presenta la línea de venta de producto (la
descripción del artículo, precio y el total asi como el total
acumulado)
El cajero finaliza la venta
– El sistema presenta el total con el impuesto calculado
Efectuar Pago
El cajero muestra el total a cobrar, recibe el pago, cancela la venta (y
entrega ticket)
– El sistema maneja el pago.
a
ent
eV
ntod Iniciar
Pu
e
lud
i nc
Procesar
e
Venta
n c lud Introducir
i Id
e
lud
Cajero i nc
Introducir
Procesar cantidad
l ude
Pago inc
Totalizar
2) Caso de uso para el Juego del ahorcado. Los pasos a seguir son:
57
a) Descripción del procedimiento: En el juego del ahorcado participan dos
personas, el jugador y el juez; el primero es quien solicita la palabra y dice
la letra y el segundo es quien evalúa el juego del jugador. El procedimiento
para jugar es el siguiente:
▪ El jugador solicita una palabra y el juez presenta el esquema de la palabra
▪ El jugador dice una letra y el juez la marca
▪ El juez examina si la letra existe o no en la palabra:
▪ Si la letra existe en la palabra se coloca en la o las posiciones
correctas: Si es la última letra de la palabra, el jugador gana el juego
▪ Si la letra no existe en la palabra, el juez coloca una parte de la horca.
Si es la última parte de la horca el jugador pierde el juego
58
3.9 Ejercicios propuestos
Realice el caso de uso para los siguientes casos:
1) Creación de un grupo o comunidad virtual en yahoo.com
2) Compra del ticket del metro, tanto por taquilla como por la máquina
3) Comprar café en una máquina expendedora
4) Ingresar al comedor de la UBV
Bibliografía
▪ Durán A. y Bernárdez B. Metodología para la Elicitación de Requisitos de
Sistemas Software Versión 2.3. Universidad de Sevilla. Abril 2002.
59
Tema IV. Requerimientos No Funcionales
Versión: 1.2
60
4.1 Requerimientos No Funcionales.
Los requerimientos son generalmente clasificados en requerimientos
funcionales y no funcionales. Los requerimientos funcionales describen los
servicios del sistema y su comportamiento. Los requerimientos no funcionales
describen propiedades del sistema y las restricciones que existen sobre éste.
Un subconjunto particular de requerimientos no funcionales puede indicar
ciertas cualidades que el sistema debe poseer, tales como adaptabilidad o
eficiencia, entre otros. Tales tipos de requerimientos son conocidos como
requerimientos de calidad. Ya que especifican la calidad requerida del sistema.
Estos requerimientos no funcionales especifican como el sistema debe realizar sus
funciones, por ejemplo, cuán rápido funciona, que tan fácil es aprender a usarlo,
cuán fácil es su mantenimiento, entre otros.
Los ingenieros de requerimientos plantean que los requerimientos no
funcionales son muy importantes, aunque generalmente se les presta poca
atención. La razón es que son difíciles de especificar y existe poca literatura
disponible al respecto. En este capítulo, discutiremos varios tipos de
requerimientos no funcionales. Nos centraremos en los requerimientos que
pueden ser verificados.
Uno de los problemas básicos con los requerimientos no funcionales es que
no son imprescindibles tal como lo son los requerimientos funcionales. Un
requerimiento funcional es, en la mayoría de los casos, algo que el usuario
necesita, sin ello, no respondería a sus necesidades. Los requerimientos no
funcionales son diferentes. Si un requerimiento no funcional no se logra, el usuario
puede, aún, usar el sistema -al menos en muchos casos-. Entonces, ¿es
verdaderamente un requerimiento?, posteriormente trataremos esto, utilizando un
ejemplo.
61
4.2 Factores de Calidad
¿Cuáles son los factores de calidad?. Algunos autores y organismos de
estandardización han dado respuesta a esta pregunta. La Tabla 1 compara dos
clases de listas. En la Tabla 1, del lado izquierdo se presenta un estándar de una
empresa, del lado derecho se presenta el estándar ISO 9126 (Año 1991).
A la izquierda está el primer intento (titulado McCall7). La lista es una taxonomía
de dos niveles. En el nivel superior, se sitúan tres importantes usos del software:
⋅ Integridad: Que tan bien el sistema maneja los cambios físicos (por ejemplo.
previene intentos maliciosos de acceso, etc. El término seguridad se usa
también para este factor.
⋅ Usabilidad: Cuán fácil es aprender a usar el sistema, cuan eficiente es para las
tareas diarias, etc.
⋅ Eficiencia: Qué tan rápido responde el sistema, cuántos recursos utiliza, cómo
procesa exactamente los valores, etc.
7
McCall y Matsumoto E.E.U.U., 1.980
62
⋅ Prueba: Que tan fácil es probar el sistema después de un cambio.
63
McCALL ISO 9126
Operación Funcionalidad
Integridad (integrity) Exactitud (accuracy)
Correctitud (correctness) Seguridad (security)
Confiabilidad (reliability) Interoperabilidad
Usabilidad (usability) adecuado (suitability)
Eficiencia (Efficiency) Cumplimiento (compliance)
Revisión Confiabilidad
Mantenibilidad (maintainability) Madurez (maturity)
Prueba (testability) Robustez (fault tolerante)
Flexibilidad (flexibility) Recuperabilidad
(recoverability)
Usabilidad
Transición Eficiencia
Portabilidad (portability) Mantenibilida
d
Interoperabilidad Testeo (testability)
(interoperability))
Reusabilidad (reusability) Modificabilidad
(changeability)
Análizabilidad (analysability)
Estabilidad (stability)
Prueba
Portabilidad
Adaptabilidad (adaptability)
Instalabilidad (installability)
Conformidad (conformance)
Sustituibilidad
(replaceability)
Tabla 1: Factores de calidad
64
De la lista de McCall han sido obviados en la lista ISO: correctitud (falta de
errores) y reusabilidad (capacidad de reutilizar segmentos del software).
Algunos nuevos aspectos de calidad han surgido en el apéndice informativo
de la ISO 9126:
65
pueden consultar otras listas de factores de calidad y usarlas como listas de
chequeo.
66
La Figura 1 contiene ejemplos de requerimientos de tiempo, detallados en
Requerimientos de tiempo:
67
R1.4: Surge de una típica aplicación de negocios. Tiene tres clases de
funciones y define un tiempo de respuesta máximo para cada clase de función
(una especificación más precisa de las tres clases puede ser necesaria en algunos
proyectos).
Dado que los tiempos de respuesta pueden variar, dependiendo de las
entradas y del estado del sistema, el requerimiento indica que solo el 95% de los
eventos se manejan dentro del límite, y solamente en una situación de actividad
estándar. Los tres límites 1, 5 y 20, están basados en estudios de la psicología
humana. Un tiempo de respuesta de 1 minuto después de corregir un campo en
un archivo puesto en pantalla no es percibido por la mayoría de los usuarios. Un
tiempo de respuesta de cinco minutos, cuando finaliza un registro, es el límite de
espera para la mayoría de los usuarios. Si tiene que esperar más de veinte
minutos buscará otra cosa que hacer.
68
minutos, de modo que el usuario obtendría un sistema con más deficiencias.
Además, si el usuario especifica 4 minutos, usando el mismo argumento, pudiese
verse obligado a aceptar un límite más alto de tiempo.
69
R 2.4: Extraído también del sistema de la reservación del hotel. Este
requerimiento surgió al considerar modelar virtualmente por pantalla casos
extremos. Esencialmente, el analista se preguntó a si mismo que mostraría la
Requerimientos de capacidad: pantalla virtual en los peores
R 2.1: El producto deberá utilizar menos de 16 MB casos, por ejemplo cuando la lista
de memoria incluso si hay mas disponibilidad.
de huéspedes está copada. El
R 2.2: Numero simultaneo de usuarios < 2000
análisis demostró que algunas
R 2.3: Volumen de base de datos:
N° de invitados < 10.000 con crecimiento del veces un huésped (el
20% por año.
N° de cuartos < 1.000 administrador de personal de una
R 2.4: La pantalla de huésped podrá mostrar por lo compañía grande), reserva 200
menos 200 cuartos reservados/ocupados por
día, ejemplo para un evento de la compañía cuartos en la misma época para la
con un solo "usuario".
celebración anual de ventas. Los
Requerimientos de rango y exactitud: nombres de cada huésped no se
R 3.1: El campo nombre tendrá 150 caracteres. podrían tener disponibles hasta
R 3.2: Las reservaciones se podrán hacer al menos
dos años antes. que no se registrasen. Muy
R 3.3: Los datos se almacenaran en 14 bits
exactamente, ampliándose a 18 bits en dos probablemente, tal situación debe
años.
ser considerada en el diseño.
Figura 2: requerimientos de eficiencia (capacidad)
70
R 3.2 Su fuente es el sistema del hotel. Provee un catálogo con las fechas
de las reservaciones. Considere esto como un requerimiento para controlar el
volumen de ocupación de cada habitación; tomando el caso de 1000 habitaciones
deberían haber 730 (2*365) registros del estatus por habitación. Sin embargo,
implementar esto depende del criterio a usar: los cuartos libres deben tener un
estatus en la base de datos, o la ausencia de este estatus indica que el cuarto
está libre. La demanda del usuario no se basa en el volumen de la base de datos,
sino en el catálogo de fechas de reservación.
R 3.3 Es extraído de un sistema automatizado de medidas. Estos sistemas
miden aspectos físicos mediante convertidores analógicos-digitales. El
requerimiento final podría haber sido un convertidor analógico-digital de 14 bits de
precisión. Muchos desarrolladores se alegraron, porque esta medida se ajusta a la
palabra de un computador de 16 bits. Sin embargo, se conocía de antemano que
la nueva generación de convertidores analógicos-digitales tendría de 16 a 18 bits
de exactitud. El requerimiento tomó esto en consideración, dejándole a los
desarrolladores la decisión de manejarlo a 18 bits desde el principio, o utilizar el
viejo código al principio y cambiarlo luego a 18 bits.
4.8 Usabilidad
Cuando el primer cajero automático (ATM por sus siglas en inglés) fue
instalado, la gente lo utilizó poco. Técnicamente trabajaban sin problemas,
entonces ¿porqué no se usaban?. Una razón simple: eran demasiado difíciles de
utilizar. Desde entonces, los desarrolladores han ido mejorando poco a poco el
uso del cajero automático, y hoy la mayoría de la gente los considera fáciles de
utilizar.
La usabilidad (facilidad de uso, simplificando) es de vital interés en la
mayoría de los sistemas. Los sistemas costosos han fallado por tener una baja
usabilidad; el proveedor podría no cargar con esta responsabilidad ya que el
sistema satisface los requerimientos funcionales, y no se le indicó nada respecto a
la usabilidad.
71
Los requerimientos de usabilidad deben ser tangibles a fin que puedan
verificarse y monitorearse durante su desarrollo. Obtener todas estas metas es
difícil, en la práctica, pero existen técnicas que permiten, en un alto porcentaje,
aciertos, en particular si se seleccionan y combinan varios estilos de
requerimientos.
72
Un hecho importante, validado por muchos experimentos, es que nadie
puede prever los problemas de usabilidad que puede tener un usuario– ni siquiera
un experto en usabilidad. Los expertos en esta materia pueden predecir muchos
problemas de usabilidad a nivel de diseño, pero alrededor de la mitad de los
problemas son falsos, en el sentido que los usuarios no sienten que esto sea un
problema. Lo que es peor, los expertos en usabilidad ignoran más de la mitad de
los problemas que los usuarios reales experimentan.
Solo algunos tipos de prueba con usuarios reales pueden revelar los
problemas de usabilidad. Para corregir los problemas, necesitamos identificarlos
durante la primera etapa del desarrollo. Consecuentemente, las especificaciones
de usabilidad que no pueden ser probadas durante el desarrollo, tendrán serias
debilidades.
El tipo de prueba necesaria para mostrar los problemas de usabilidad se
denomina prueba de usabilidad. Es un experimento donde los usuarios reales, con
un conocimiento apropiado, intentan desarrollar tareas verdaderas por medio del
sistema o de un prototipo. Los observadores registran los problemas encontrados
por el usuario y el tiempo de ejecución de las tareas.
Riesgo
Usuario Proveedor
Seis estilos para usabilidad
Estilo de performance
73
R.1: Los usuarios novatos deben ser capaces de realizar
las tareas Q y R en 15 minutos. Los usuarios expertos
deberán realizar las tareas Q,R, y S en 2 minutos.
Estilo de defectos
R.2: En promedio, un usuario novato encontrará menos
de 0,2 defectos serios en usabilidad al realizar las tareas
Q y R.
Estilo de procesos
R.3: Durante diseño, una secuencia de 3 prototipos
deberán realizarse. A cada prototipo se le hará pruebas
de usabilidad y se corregirán los principales defectos.
Estilo de subjetividad
R.4: El 80% de usuarios debe percibir al sistema fácil
aprender y eficiente para el uso diario.
Estilo de diseño
R.5: El sistema utilizará las ventanas diseñadas. (Se
acepta si la usabilidad del diseño ha sido probada)
Estilo de lineamientos
R.6: El sistema seguirá la guía de estilo de Microsoft
Windows. Los menús tendrán como máximo tres niveles
Estilo de performance
R1: Los principiantes pueden ser capaces de realizar las tareas Q y R en 15
minutos. Los usuarios expertos son capaces de realizar las tareas Q, R, y S en 2
minutos.
En el estilo de performance especificamos cuan rápido los usuarios pueden
aprender varias tareas, con que rapidez pueden realizar sus labores después del
entrenamiento, entre otros. Podemos verificar estos requerimientos a través de
pruebas de usabilidad. Por medio de prototipos, podemos hacer pruebas de
usabilidad durante la primera etapa del desarrollo, de modo de proyectar los
requerimientos del diseño.
El estilo armoniza bien con los casos del uso. Las tareas pueden ser casos
de uso. Además, los requerimientos de performance podrían encontrar un lugar en
la descripción del caso de uso. El estilo captura bastante bien la esencia de la
74
usabilidad, lo que significa que si el software cumple los requerimientos, el usuario
consigue lo que necesita. El problema principal es seleccionar las tareas
adecuadas.
Sin embargo, el estilo es riesgoso para el proveedor. No hay garantía de
que se puedan recabar todos los requerimientos. Un factor como la eficiencia en el
uso diario puede ser difícil de verificar durante el desarrollo.
Sorprendentemente, cuando el usuario selecciona y compra un software
estándar, el estilo conlleva bajo riesgo para ambas partes. ¿Por qué? Porque el
software está terminado y se pueden tomar medidas antes de decidir comprarlo.
Estilo de Defectos
R2: En promedio, un usuario nuevo encontrará menos de 0,2 defectos de
usabilidad al realizar las tareas Q y R. Un problema serio de usabilidad es una
tarea que falla, es decir, una tarea que el usuario no puede terminar. Así que el
requerimiento debería definirse como que el 80% de los usuarios sean capaces de
terminar las tareas por si mismos.
El estilo de defecto se asemeja al estilo de performance, pero en lugar de
medir tiempos de ejecución de las tareas, identifica los defectos de usabilidad del
sistema y especifica con que frecuencia pueden ocurrir. Un defecto de usabilidad
puede hacer que el usuario incurra en equivocaciones o se sienta molesto. Por
ello se le solicita al usuario pensar en voz alta durante la prueba de usabilidad
mientras un observador registra los defectos.
La ventaja principal del estilo es que la lista de defectos provee a los
desarrolladores un excelente feedback, permitiéndoles corregir el diseño con
mayor facilidad. La desventaja es que estamos menos seguros de captar la
esencia de la usabilidad. Por ejemplo, el bajo rendimiento diario será reportado
como un defecto de usabilidad si el usuario se queja por ello.
Estilo de proceso
R3: Durante el diseño, se realizarán tres prototipos. Cada prototipo deberá
ser probado en cuanto a usabilidad y se corregirán los principales defectos.
75
El estilo de proceso especifica el procedimiento de desarrollo a usarse para
asegurar la usabilidad. El estilo no dice nada acerca del resultado del desarrollo,
pero el usuario espera que el proceso genere un buen resultado. El ejemplo
especifica el desarrollo basado en un prototipo iterativo ya que se admite como un
proceso eficaz.
¿Cuántas iteraciones necesitamos hacer? Debemos especificar el criterio
de finalización del número de interacciones, por ejemplo continuar hasta no
detectar ningún defecto serio de usabilidad, pero entonces tendríamos un estilo de
defecto, en lugar de un estilo de procesos. Sin embargo, podríamos especificar
que las iteraciones serán negociadas entre el usuario y el proveedor después de
tres iteraciones. Esto aún estaría en el marco de estilo de procesos.
El usuario no puede estar seguro de tener lo que necesita, porque se deja
mucho en mano de los desarrolladores, quienes seleccionan a menudo las tareas
y los usuarios para la prueba de usabilidad, o hacen solamente cambios menores
a los prototipos en lugar de rediseñarlos. El resultado puede ser que la usabilidad
sigue siendo inaceptable después de tres iteraciones.
Estilo subjetivo
R4: El 80% de los usuarios deberá indicar que el sistema es fácil de
aprender y es eficiente para el uso diario.
Con el estilo subjetivo, preguntamos a los usuarios su opinión,
tradicionalmente a través de cuestionarios. Esto parece captar la esencia de
usabilidad. Desafortunadamente, los usuarios expresan a menudo satisfacción con
el sistema a pesar de tener evidencias de que el sistema es incómodo y les hace
perder mucho tiempo.
La satisfacción con el sistema está fuertemente influenciada por factores
organizacionales fuera del alcance del desarrollador del sistema. Otro problema
con el estilo subjetivo es que es difícil verificar el requerimiento durante el
desarrollo. Muchos expertos preguntan a los usuarios su opinión subjetiva
después de haber hecho pruebas de usabilidad del prototipo, pero esto no se
correlaciona con sus opiniones después del desarrollo del sistema.
76
El resultado es que tanto el usuario como el proveedor corren un alto
riesgo.
Estilo de Diseño
R5: El sistema utilizará las pantallas diseñadas. El menú y los botones
trabajarán como se describe en…
El estilo de diseño describe los detalles de la interfaz del usuario.
Substancialmente, ello transforma los requerimientos de usabilidad en
requerimientos funcionales. Los requerimientos de usabilidad son fáciles de
verificar en el software final y fácil de observar durante el desarrollo. El proveedor
corre un riesgo bajo.
A través del diseño, los ingenieros de requerimientos han tomado toda la
responsabilidad de la usabilidad. El diseñador del sistema y el programador
pueden hacer pequeños cambios a la usabilidad. Si el ingeniero de requerimientos
ha hecho un cuidadoso trabajo con el análisis de las tareas, el prototipaje y las
pruebas de usabilidad, la usabilidad final lograda será adecuada y por ende el
usuario corre un bajo riesgo. De lo contrario, su riesgo es alto - él no conseguirá lo
que necesita.
Los prototipos que no son probados pueden usarse como ejemplos de lo
que el usuario piensa, más no como un requerimiento de usabilidad.
Estilo de Lineamientos
R6: El sistema podría seguir los lineamientos de Microsoft Windows. Los
menús deben tener como máximo tres niveles.
El lineamiento de estilo señala la apariencia general y la respuesta sobre la
interfaz de usuario. Puede interpretarse como un requerimiento funcional que se
aplica a cada ventana, etc. Los lineamientos pueden ser estándares, guías de
corporaciones o reglas basadas en la experiencia.
77
Aunque los lineamientos generalmente mejoran la usabilidad, tienen poca
relación con la esencia de la usabilidad. En otras palabras, se puede tener un
sistema que los usuarios encuentren muy difícil de utilizar aún siguiendo los
lineamientos. (Dichos sistemas son realmente comunes, como se demuestra en
muchos programas que siguen las pautas de Microsoft Windows y aún así son
muy difíciles de utilizar). Como complemento de otros estilos, el estilo de
lineamientos es muy útil, particularmente para ayudar a los usuarios que alternan
entre aplicaciones.
4.9 Mantenimiento
La mayoría de los productos necesitan mantenimiento, debido a muchos
factores, tales como: los usuarios encuentran errores en ellos, la demanda crece,
el ambiente cambia. Muchos proveedores hacen muy buenos negocios en esta
área y los clientes se ven forzados a pagar por estos servicios. En algunos casos,
los proveedores venden la primera versión del producto a un precio accesible y
después obtienen muchos beneficios con el mantenimiento.
Los costos de mantenimiento pueden convertirse en una verdadera carga
para los clientes, esto debido a los honorarios cobrados por los proveedores y a
interrupciones en los negocios mientras que el mantenimiento se realiza; el
objetivo de los requerimientos de mantenimiento, es resguardarse de ambos
factores.
78
en algo más, de manera que causará problemas más adelante. Evitar defectos
relacionados es esencial para ambos: cliente y proveedor, ya que las
reparaciones adicionales resultan ser muy costosas para ambos.
⋅ Mantenimiento perfectivo. Extender el sistema para cubrir demandas
adicionales.
Los requerimientos de mantenimiento tratan con los tres tipos señalados.
Otro aspecto es cómo se definen los defectos y que tipo de reparación necesita el
cliente. Observe el ciclo de mantenimiento: ¿qué sucede con un defecto o un
pedido de cambio?.
Mantenimiento Mantenimiento
correctivo preventivo
Nueva versión
Mantenimiento
perfectivo
Ciclo de mantenimiento:
Reportes de problemas
Análisis: ¿defecto, demanda?
Clasificar: ¿rechazo? ¿Labores?
¿Reparar? ¿Nueva versión?
Hacer cambio
Prueba
Instalar
79
El reporte es clasificado: ¿es un defecto o un pedido de cambio?,
¿debemos rechazarlo porque no es realmente un problema del producto?, ¿lo
repararemos inmediatamente o se puede esperar el lanzamiento de la siguiente
versión del producto?.
Hacer un cambio del producto, sea como un parche a ser distribuido
inmediatamente o como parte de la próxima versión.
Testear el cambio. Tratar de encontrar y corregir defectos relacionados que
pudiesen presentarse mas adelante.
Instalar el cambio y asegure que los datos del usuario, configuraciones,
entre otros, son transferidos.
Muchos proveedores no tienen un ciclo de mantenimiento bien establecido
y parte de los requerimientos podrían ser que definan uno.
Estilo de performance
R 1.1: El proveedor analiza y clasifica el 95% de reportes contenidos en dos
horas de trabajo. Los defectos urgentes serán reparados en las próximas 30 horas
del trabajo en el 95% de los casos.
80
Limita el tiempo que el usuario tiene que esperar antes de conocer como
proceder después de un problema; en la mayoría de estos casos las reparaciones
se puede realizar de forma inmediata, pero existen otras reparaciones que son
garantizadas dentro de un periodo específico. Los requerimientos reconocen que
algunos problemas son más difíciles, pero su número es limitado. Por otra parte,
detalles acerca de qué se entiende por horas de trabajo, cómo se responde al
usuario, etc.; se deben especificar en el proyecto.
R1.2: Cuando se repara un defecto, los defectos relacionados no reparados
deberían ser menos de 0.5 en el promedio.
Trata con el mantenimiento perfectivo. Esto obliga al proveedor a encontrar
cuáles problemas están relacionados en lugar de realizar sólo un parche. Se
asume por supuesto que los reportes de defecto han sido recopilados y
analizados.
R1.3: Para un periodo de dos años, el proveedor aumentará el costo del
producto
Ello limita el costo del mantenimiento perfectivo. En esencia, esto indica que las
mejoras tendrán un costo proporcional a su tamaño. El costo ha sido fijado, y en el
ejemplo se le pide al proveedor especificarlo, de modo que el cliente pueda
comparar con otros proveedores.
El estilo de performance puede acercarse a las necesidades esenciales del
cliente; además este estilo es reconocido en algunos dominios como una forma de
medir el desarrollo de un trabajo independiente de técnicas de programación y
experiencia del programador.
81
horas estableciendo todas las funcionalidades del nuevo sistema. Los
requerimientos no dicen si el proveedor tratará de forma manual los cambios o si
su producto realizará los ajustes automáticamente.
R 2.2: El proveedor colocará una estación de mantenimiento calificada para
los clientes.
Requiere exclusivamente de una persona que se encargue del
mantenimiento, de manera que un cliente no dependa de otros clientes.
R 2.3: El proveedor deberá depositar los códigos y toda la documentación
de cada versión y sus correcciones.
Es una medida de emergencia en caso que el proveedor suspenda las
negociaciones o no satisfaga los requerimientos de mantenimiento. En este caso,
el cliente puede encontrar a alguien más que realice el mantenimiento, la
codificación y documentación necesaria.
En el estilo de proceso asistido se especifican todas las cosas que suceden
durante el mantenimiento, pero no dice nada acerca de su duración.
82
Actividades propuestas al estudiante
1) ¿Defina que es un requerimiento no funcional?
2) ¿Nombre los requerimientos no funcionales de su Caso de Estudio?
3) Determine cual sería el modelo de mantenimiento correctivo en su Caso de
Estudio.
4) Realice el ciclo de mantenimiento de su Caso de Estudio.
83
Tema VI. Documento de Requerimientos
Versión: 1.3
84
hacerse. La presentación de la información contendida en el documento de
requerimientos depende del equipo desarrollador, del usuario, sin embargo existe
un modelo generalmente aceptado para el desarrollo de éste producto entregable.
El esquema comprende los siguientes tópicos:
Portada
Lista de cambios
Índice
Lista de figuras
Lista de tablas
1. Introducción
2. Participantes en el proyecto
3. Descripción del sistema actual (opcional)
4. Objetivos del sistema
5. Catálogo de requerimientos del sistema
5.1. Requerimientos de almacenamiento de información
5.2. Requerimientos funcionales
5.2.1.Diagramas de casos de uso
5.2.2.Definición de actores
5.2.3.Casos de uso del sistema
5.3. Requerimientos no funcionales
6. Matriz de rastreabilidad objetivos/requerimientos
7. Conflictos pendientes de resolución (opcional)
8. Glosario de términos (opcional)
9. Apéndices
85
Debe contener el nombre del proyecto, la identificación del equipo
desarrollador, identificación del usuario, la fecha de publicación del documento y la
versión. Con relación a éste último aspecto, es de destacar que se compone de
dos números (x, y). El primer dígito (x) indica la versión del documento y se
incrementa cada vez que se hace una nueva entrega formal al usuario.
El segundo digito (y) denota cambios dentro de la misma versión, que aún
no ha sido entregada oficialmente al usuario. El valor de y varía en dos
escenarios:
1. Al publicar una versión del documento que refleja cambios en relación con
la última versión, más no ha sido entregada formalmente. Ejemplo: El
equipo desarrollador entregó al usuario la versión 1.0 del Documento de
Requerimientos, posteriormente se hicieron modificaciones plasmadas en
otro documento (conocido solo por los miembros del equipo desarrollador),
dando origen a la versión 1.1.
2. Cuando se elabora una nueva versión oficial del documento, el valor de x
se incrementa, quedando y con valor cero (0) para indicar que es la primera
entrega de esa versión. Ejemplo: Se consolidaron los cambios realizados
en la publicación 1.1, y se elaboró una nueva versión del documento de
requerimientos para entregársela al usuario, siendo ésta la versión 2.0.
86
Proyecto [Nombre del Proyecto]
Versión [x.y]
Fecha [día/mes/año]
Figura 1. Portada
Nota: La información que está dentro de los corchetes [ ], debe sustituirse con los
datos propios del caso de estudio.
87
Número
Fecha Descripción Autores
orden
Creador (es) del
0 Fecha inicial Versión (1.0). documento.
Describir el primer cambio:
Creador (es) del 1er
1 Fecha 1 cambio indicar la ubicación dentro del
er
6.2.3 Índice
El índice refleja la estructura del documento con su respectiva ubicación, es
decir, menciona el número de la página donde inicia cada aspecto. Para ayudar al
lector a comprender con mayor claridad la estructura del documento, se
recomienda identar o sangrar los temas y sus subtemas. Ver ejemplo
Índice General
Introducción............................................................. 1
Objetivos ……………………... ................................. 2
Identad Administrar Usuario ........................................... 3
88
El documento de requerimientos puede contener dentro de su cuerpo,
figuras y tablas que apoyan el desarrollo. Estos elementos deben ser listados en
un Índice de Figuras y un Índice de Tablas respectivamente. Por ser un índice
deben contener el nombre de la tabla o la figura y la página donde está ubicada.
Índice de Figuras
Índice de Tablas
6.2.5 Introducción
89
Contiene el propósito del documento de requerimientos, el alcance del
software, las referencias, definiciones, acrónimos y abreviaturas usadas dentro del
documento. Asimismo, se puede incluir una descripción breve del caso de estudio
y cualquier otro elemento que permita comprender el contexto de desarrollo.
90
Versión [Número de la versión actual] ([fecha de la versión
actual])
Autores [Autores de la versión actual] ([Organización del autor])
Fuentes [Fuente de la versión actual: usuario, etc.]
([Organización del autor])
Descripción El sistema deberá [objetivo a cumplir]
Objetivos Específicos Planteamiento de los objetivos específicos
Importancia Indicar la importancia del objetivo; esto puede hacerse
asignando un número o una palabra (vital, relevante,
entre otros)
Urgencia Se puede indicar mediante un número o una frase:
urgente, inmediatamente, puede esperar
Estado Indica el avance: en construcción, pendiente de
negociación, pendiente de validación, validado.
Estabilidad Indica la posibilidad de cambiar el objetivo a futuro; se
puede usar números para indicar la estabilidad o
frases: alta, media, baja. Este campo ayuda a los
diseñadores a diseñar el software de manera que
pueda adoptarse a los posibles cambios.
Comentarios Cualquier descripción adicional.
▪ Requerimientos de almacenamiento
91
▪ Requerimientos funcionales:
92
Autores [Autores de la versión actual] ([Organización del autor])
[Fuente de la versión actual: usuario, usuario, etc.] ([Organización del
Fuentes
autor])
Obj. - X <Nombre>
[Se colocan los objetivos relacionados con el requisito señalado. De
Objetivos asociados
ésta manera se visualiza cuales son los requerimientos que se
requiere para lograr los objetivos planteados.]
Requerimientos Rx-y <nombre del requisito>
asociados [Otros requerimientos vinculados con el requisito que se describe.]
Descripción En esta parte se indican el concepto relevante del sistema.
Datos específicos <datos específicos del concepto relevante del campo anterior>
{pasado y presente, solo presente}
Las opciones reflejan el tiempo durante el cual la información es
Intervalo temporal relevante para el sistema. La frase "pasado y presente" indica que la
información es siempre relevante; "solo presente" se usa para
señalar que la información tiene un período determinado de validez.
Importancia Trascendencia del requerimiento: vital, relevante, etc.
Se puede indicar mediante un número o una frase: urgente,
Urgencia
inmediatamente, puede esperar.
Indica el avance: en construcción, pendiente de negociación,
Estado
pendiente de validación, validado.
Indica la posibilidad de cambiar el objetivo a futuro; se puede usar
Estabilidad números para indicar la estabilidad o frases: alta, media, baja. Este
campo ayuda a los diseñadores a prever cambios en el diseño.
Comentarios Cualquier descripción adicional.
93
UC <id> [Nombre descriptivo y código del requisito]
Versión [Número de la versión actual] ([fecha de la versión actual])
Autores [Autores de la versión actual] ([Organización del autor])
[Fuente de la versión actual: usuario, usuario, etc.] ([Organización del
Fuentes autor])
Obj. - X <Nombre>
Objetivos asociados [Se colocan los objetivos relacionados con el requisito señalado.
Requerimientos Rx-y <nombre del requisito>
asociados [Otros requerimientos vinculados con el requisito que se describe.]
Describen lo que hará el caso de uso. Pueden iniciar con la frase “El
Descripción sistema deberá comportarse tal como se describe en el siguiente
caso de uso”.
Precondición Condición previa que debe cumplirse para poder ejecutarse el CU
Paso Acción
P1 El actor o el sistema inicia….[Colocar la acción]
Secuencia Normal P2 Se realiza el caso de uso [Colocar Nº de caso de uso]
Si se cumple al siguiente condición, se realiza [colocar
P3
acción]
Poscondición Condición que resulta luego de aplicar el caso de uso.
Paso Acción
Describir la excepción que puede ocurrir de no sucederse con
P2
Excepciones normalidad el paso dos citado en la secuencia normal
Describir la excepción que puede ocurrir de no sucederse con
P3
normalidad el paso tres citado en la secuencia normal
Paso Tiempo
Rendimiento
q Cantidad de tiempo con su unidad. Ejemplo. 10 minutos
Frecuencia Nº de veces que ocurre el caso de uso / unidad de tiempo
Se puede indicar mediante un número o una frase: urgente,
Urgencia inmediatamente, puede esperar.
Indica el avance: en construcción, pendiente de negociación,
Estado pendiente de validación, validado.
Indica la posibilidad de cambiar el objetivo a futuro; se puede usar
Estabilidad números para indicar la estabilidad o frases: alta, media, baja.
Comentarios Cualquier descripción adicional.
Figura 5. Plantilla para recabar los Requerimientos Funcionales
94
6.2.12 Diagramas de casos de uso
Un caso de uso es la descripción secuencial de interacciones entre el
sistema y las personas que interactúan con él (denominados actores). Los casos
de uso son una técnica tanto de Elicitación como de especificación de los
requerimientos funcionales. Su representación gráfica se realiza mediante
Diagramas de casos, en los cuales los actores son representados por pequeñas
figuras y los casos de uso por elipses diagramados dentro de un rectángulo que
viene a ser el sistema.
Caso de uso A
Caso de uso B
Actor 1 Actor 2
Caso de uso C
Sistema
95
Figura 7. Plantilla de Actores
96
Figura 09. Plantilla de Requerimientos No Funcionales
97
Figura 10. Plantilla para Conflictos pendientes
6.2.19 Apéndices
Se usan para suministrar información referente a la documentación
obligatoria del documento de requerimientos.
98
4. Con base al caso de estudio modelo (Diseño de una página Web para la
Unidad Curricular) plasmar los siguientes elementos (los cuales se han
determinado en temas previos):
Actores
Requerimientos
Funcionas del sistema actual (casos de uso)
Objetivos del sistema propuesto
b) Los diseñadores del equipo de desarrollo del software para enseñar como
navegar en la web, realizaron cambios en la interfase con el usuario y
publicaron al resto del equipo un documento con la descripción de los
cambios respectivos.
Versión __ . ___
99
c) Como consecuencia de los cambios de diseño, los programadores
efectuaron otras modificaciones al software, las cuales publicaron en un
documento.
Versión __ . ___
2) Diseñar una lista de cambios tomando como base los datos del ejercicio
anterior.
100
Tema VII. Estándares
Versión: 1.2
101
7.1 Introducción
En el proceso de construcción y desarrollo de proyectos se aplican métodos
y técnicas para resolver los problemas, la informática aporta herramientas y
procedimientos sobre los que se apoya la ingeniería de software. La Ingeniería de
Software permite: mejorar la calidad de los productos de software, aumentar la
productividad, facilitar el control del proceso de desarrollo de software, suministrar
a los desarrolladores las bases para construir software de alta calidad.
A partir de la Ingeniería de software se han introducido y popularizado una
serie de estándares para medir y certificar la calidad, tanto del sistema a
desarrollar, como del proceso de desarrollo en sí. Un número creciente de
herramientas automatizadas han surgido para ayudar a definir y aplicar un proceso
de desarrollo de software efectivo. En la actualidad la economía en casi todos sus
aspectos, depende más de sistemas automatizados que en el pasado; esto ha
llevado a los equipos de desarrollo a enfrentarse con una nueva década de
procesos y estándares de calidad.
Por medio de los estándares se pueden hacer las cosas más fáciles,
definiendo características de objetos y sistemas que se utilizan cotidianamente.
Todas las industrias funcionan con estándares, la industria informática también
utiliza estándares tanto para los componentes de Hardware (teclados, monitores,
entre otros) como los de Software.
Los estándares para software se aplican generalmente a características
básicas de la interfaz de usuario. Con el hecho de desarrollar estándares para la
interfaz se intenta conseguir un software más fácil y seguro, estableciendo unos
requisitos mínimos de fabricación y eliminando inconsistencias y variaciones
innecesarias en las interfaces.
7.2 Estándar
Un Estándar se puede definir como "lo que es establecido por la autoridad, la
costumbre o el consentimiento general". En este sentido se utiliza como sinónimo de
norma.
102
7.3 Norma
Documento establecido por consenso y aprobado por un organismo reconocido,
que proporciona, para un uso común y repetido, reglas, directrices o características para
actividades o sus resultados, con el fin de conseguir un grado óptimo de orden en un
contexto dado.
7.4 Normalización
103
▪ Estándares de Facto: Se llama estándares de facto, a los estándares que nacen
a partir de productos de la industria que tienen un gran éxito en el mercado, o
bien a partir de desarrollos hechos por grupos de investigación de universidades
y que tienen una gran difusión. Estos productos o proyectos de investigación
llegan a tener un uso muy generalizado, convirtiéndose, por tanto, en estándares
de facto.
104
La finalidad de los diagramas es presentar diversas perspectivas de un
sistema a las cuales se les conoce como modelo. En el modelo UML se describe
lo que se espera hará un sistema, pero no dice como será su implementación.
3) Tipos de Diagramas UML: Existen muchos diagramas UML entre los cuales
se encuentran:
▪ Diagrama de Casos de Uso: En este tipo de diagrama se presentan los
escenarios de uso del sistema, incluyendo los roles de los usuarios.
▪ Diagrama de Clases: Presenta las clases, junto con sus atributos, operaciones,
interfaces y relaciones. También presenta el agrupamiento de clases en paquetes
y las relaciones entre ellos.
▪ Diagrama de Objetos: Muestra instancias de clases (objetos) con valores en sus
atributos y relaciones.
▪ Diagrama de Estados: Representa los posibles estados, eventos y transiciones
entre las clases u objetos.
▪ Diagrama de Secuencias: El diagrama de secuencia forma parte del modelado
dinámico del sistema. Se modelan las llamadas entre clases desde un punto
concreto del sistema. Es útil para observar la vida de los objetos en sistema,
identificar llamadas a realizar o posibles errores del modelado estático, que
imposibiliten el flujo de información o de llamadas entre los componentes del
sistema.
▪ Diagrama de Componentes: Organización y dependencia entre componentes
físicos.
105
7.8 Estándares de Calidad del Software
La calidad del Software se refiere a un conjunto de cualidades que lo
caracterizan y que determinan su utilidad y existencia. La calidad es sinónimo de
eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad,
usabilidad, seguridad e integridad.
La calidad del software es medible y varía de un sistema a otro o de un
programa a otro; esta medición se realiza después de elaborado el producto. Pero
esto puede resultar muy costoso si se detectan problemas derivados de
imperfecciones en el diseño, por lo que es imprescindible tener en cuenta tanto la
obtención de la calidad como su control durante todas las etapas del ciclo de vida
del software.
106
comprender los requerimientos y por otra parte al cliente y usuarios del sistema,
para cerciorarse que efectivamente son esos y solo esos los requerimientos del
proyecto.
107