Upload
demian-gutierrez
View
1.784
Download
5
Tags:
Embed Size (px)
Citation preview
1
Universidad de los AndesDemián Gutierrez
Febrero 2013
REQUISITOS / REQUERIMIENTOS¿Cómo se Documentan?
2
Requisitos / Requerimientos
¿qué necesito saberde un “futuro” sistema?
3
¿Qué necesito saber / definir sobre un sistema?
Los involucrados
Los objetivos de negocios que se desean satisfacer con el sistema (esto viene del modelo de negocio del cliente)
La visión general del sistema¿Usted qué cree?
El propósito del sistema¿Para qué lo necesito?
Los objetivos del proyecto(y como mido si se cumplieron o no)
Fundamentado en base a la plantilla Volere, edición 14, Enero 2009
4
¿Qué necesito saber / definir sobre un sistema?
Otros hechos relevantes
El alcance del proyecto
El alcance del producto
Los requisitos (evidente)Y los hay de muchos tipos (ver la plantilla Volere)
Restricciones impuestas (por el cliente o el entorno)
Fundamentado en base a la plantilla Volere, edición 14, Enero 2009
5
¿Qué necesito saber / definir sobre un sistema?
Ideas de posibles soluciones
Riesgos (Ojo, algunos tratan la “gestión de riesgos como algo completamente aparte y distinto)
Soluciones ya existentes
Costos estimados (Valoración inicial)
Otros aspectos
Fundamentado en base a la plantilla Volere, edición 14, Enero 2009
6
Requisitos / Requerimientos
¿cómo se documentanlos requisitos?
7
¿Cómo se definen los requerimientos?Descripciones en Lenguaje Natural
Usted tiene que desarrollar un sistema de software para la “Policía del Estado Mérida”.
Entre los requerimientos, hay un proceso que consiste en la gestión de las armas ymuniciones de la armería de la policía. El proceso contempla la entrega de armas a losagentes policiales, la devolución de las armas al parque, las pruebas y validaciones de leyque se realizan a las armas después de la entrega y finalmente, cualquier proceso deinvestigación posterior en caso de que el armamento haya sido disparado.
Después de conversar con el comisario sobre el funcionamiento del proceso en discusión, sepuede resumir la conversación de la siguiente forma:
Es necesario un proceso que sirva para gestionar la entrega de armamento del parque dearmas a los “Agentes Policiales”. En general, los Agentes se presentan al “Encargado delParque de Armas” y solicitan cierto armamento. El Encargado del Parque busca elarmamento solicitado en el inventario y si éste se encuentra disponible se lo entrega alAgente. Si el armamento no se encuentra disponible el proceso termina. La entrega ocurresólo luego de que el Agente llene y firme una “Planilla de Retiro de Armamento”. Laplanilla tiene información sobre la fecha en que se entrega el arma al Agente, el serial delarma y la cantidad y tipo de munición entregada. Luego de llenar la planilla, el Encargadoentrega el arma y las municiones al Agente, quien debe revisarlas y poner en la planillacualquier observación o desacuerdo que corresponda al estado de las mismas en caso de sernecesario.
8
¿Cómo se definen los requerimientos?Listas de “Features” (Características)
9
¿Cómo se definen los requerimientos?Listas de “Features” (Características)
10
¿Cómo se definen los requerimientos?Listas de “Features” (Características)
11
Discusión
¿qué ventajas / desventajas tendrán las listas de “features” sobre las descripciones textuales
en “lenguaje natural”?
¿será suficiente una lista de “features” para especificar un sistema?
¿Cómo se definen los requerimientos?Listas de “Features” (Características)
12
¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos
Tomado de la plantilla Volere, edición 14, Enero 2009
13
# deRequisito:
045 Tipo deRequisito:
Funcional Caso deUso / EventoRelacionado:
054
Descripción: Los usuarios deben poder intercambiar mensajes y comunicarse pormedio del foro, toda la comunicación debe estar moderada paraevitar conductas inapropiadas por parte de los usuarios, mensajesbasura y publicidad no deseada.
Justificación: Esta es la razón de ser del sistema, el objetivo principal de un foroWEB es permitir intercambiar mensajes entre usuarios.
Origen(Interesado):
Pedro Moreno
Criterio deAceptación /Validación:
El usuario debe poder publicar un mensaje.El mensaje no debe aparecer hasta que un moderador lo acepte.Si un moderador acepta el mensaje entonces éste aparece publicado.Si un moderador rechaza el mensaje entonces éste no es publicado.
Nivel desatisfacción delInteresado:
5 Nivel deinsatisfacción delInteresado:
5
Prioridad: 5 Requisitos enConflicto:
055, 034, 040
Material deSoporte:
ÚltimaModificación:
Modificado 15/08/2009 – Gloria LinaresCreado 12/02/2009 – Luis Gutierrez
Ejemplo de un requisito del foro WEB
¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos
14
Planilla VOLERE para Documentación de Requisitos
Identificador del Requisito: 45
Tipo de Requisito: Funcional Caso de Uso/Evento: 4.2.1
Descripción: Calcular el promedio diario, mensual y anual de precipitación en cada una de las estaciones climatológicas del país Justificación del requisito Es necesario para elaborar los reportes diarios, mensuales y anuales de precipitación.
Fuente (que interesado lo propone): Juan Peña
Unidad en la que se origina: División de Climatología
Criterios de validación: Los valores obtenidos se compararán con los obtenidos en años pasados para determinar si hay inconsistencias. Grado de satisfacción del interesado: 3
Grado de insatisfacción del interesado: 5
Dependencias (qué requisitos depende de este):35, 48
Conflictos (qué requisitos son incompatibles o inconsistentes con este):
Documentos de soporte: Manual de Precipitación
Histórico de cambios: 20-Mayo-2006
Proyecto: Sistema de Información Climatológica Analista: Julia Monsalve
Tomado del Taller de Ingeniería de Requisitos V 4.06, Ceisoft, Marzo 2006Ejemplo con algunas modificaciones de la plantilla Volere
¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos
15
Recuerde siempre, que los requerimientos se pueden “priorizar”, es decir, algunos requerimientos
siempre serán mas importantes para el cliente o más críticos para el negocio que otros
En función de estas prioridades se puede decidir cuales requerimientos entregar, cuales no y así jugar con los costos y los tiempos de desarrollo (afectando lo menos posible la satisfacción del cliente / usuario)
¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos
16
¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos
Cuadro Resumen de Requerimientos(índice, importante)
17
Plantillas Volere*http://www.volere.co.uk/
*Gracias a James Robertson de Atlantic System Guild por facilitame una copia gratuita de las plantillas para uso académico
MeRinde**http://merinde.rinde.gob.ve/
**MeRinde es más que un grupo de plantillas de apoyo, es una metodología de desarrollo de software basada en el Proceso Unificado (UP)
IEEE Std 830-1993http://standards.ieee.org/reading/ieee/std_public/description/se/830-1993_desc.html
¿Otras? Sin duda alguna...
¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos
Historias de Usuarios(Modelos ágiles – XP, SCRUM)
Una historia de usuario es una narración que describe una funcionalidad del sistema que tiene valor para un usuario
Se recogen en unas sencillas tarjetas de forma esquemática y en un lenguaje claro y preciso
Aprobación de nuevos usuarios
Yo como administrador del foro quisiera poder aceptar o rechazar los nuevos usuarios registrados para así poder evitar que el foro se llene de
spammers
¿quién?¿qué?
¿por qué?
Historias de Usuarios(Modelos ágiles – XP, SCRUM)
Las historias de usuario sirven de “recordatorio” de la funcionalidad que es necesario implementar en el
sistema
Antes de implementar una funcionalidad en particular se produce una discusión con el usuario, se refina y extiende la información de la historia de usuario
Aprobación de nuevos usuarios
Yo como administrador del foro quisiera poder aceptar o rechazar los nuevos usuarios registrados para así poder evitar que el foro se llene de
spammers
20
Caso de Uso
Actor
Generalización / Especialización
de Actores
Límites delSistema
Colaboración entre casos
de uso
AsociaciónCaso de
Uso / Actor
¿Cómo se definen los requerimientos?Lenguajes / Notaciones Gráficas
21
Lenguajes / Notaciones Gráficas...... y su respectiva descripción textual
Nombre: Crear mensaje foro
Autor:
Fecha: 21/04/09
Descripción:
Permite crear un nuevo mensaje (hilo) en el foro de discusión.
Actores:
Usuario / Moderador
El usuario debe de estar autenticado en el sistema.
Flujo Normal:
Flujo Alternativo:
El mensaje ha sido almacenado en el sistema y fue publicado.
Pedro Pérez
Precondiciones:
1.- El actor pulsa sobre el botón para crear un nuevo mensaje.2.- El sistema muestra una caja de texto para introducir el título del mensaje y una zona de mayor tamaño para introducir el cuerpo del mensaje.3.- El actor introduce el título del mensaje y el cuerpo del mismo.4.- El sistema comprueba la validez de los datos y los almacena.5.- El moderador recibe una notificación de que hay un nuevo mensaje.6.- El moderador acepta y el sistema publica el mensaje si éste fue aceptado por el moderador.
4.A.- El sistema comprueba la validez de los datos, si los datos no son correctos, se avisa al actor de ello permitiéndole que los corrija.
6.B.- El moderador rechaza el mensaje, de modo que no es publicado sino devuelto al usuario.Poscondiciones:
22
Discusión
¿Cual es la diferencia entre la plantilla anterior (Caso de Uso), una Historia de Usuario y la
ficha Volere para definir requerimientos?
(Ademas de las diferencias evidentesde formato y campos)
¿Cómo se definen los requerimientos?Listas de “Features” (Características)
23
¿Cómo se definen los requerimientos?Lenguajes Formales
Ejemplo de “Notación Z”
No cuenten conmigo... (opinión personal)
24
¿Cómo se definen los requerimientos?Requisitos Definidos por Pruebas (TDD)
@Testpublic void celula_central_muere_de_soledad_con_0_vecinos() { curr = aMap(). // with("...").// with(".O.").// with("...").build(); Conway c = new Conway(stringToMap(curr)); assertTrue(c.liveToDie(2, 2));}
@Testpublic void celula_central_muere_de_asinamiento_con_4_vecinos() { curr = aMap(). // with("O..").// with(".OO").// with("OO.").build(); Conway c = new Conway(stringToMap(curr)); assertTrue(c.liveToDie(2, 2));}
@Testpublic void celula_central_no_muere_con_2_vecinos() { curr = aMap(). // with("...").// with(".OO").// with("..O").build(); Conway c = new Conway(stringToMap(curr)); assertFalse(c.liveToDie(2, 2));}
Estas pruebas validan un comportamiento,
pero en cierto sentido, también especifican un comportamiento, sobre
todo si se escriben antes de escribir el
código que implementa la funcionalidad
validada
25
¿Cómo se definen los requerimientos?Requisitos Definidos por Pruebas (TDD)
@Test public void canCreateAndAccept() { loginAndOpenList();
list.clickAddDta(); edit.waitUntilShows();
edit.fillVal(_PropMCrudB.NAME, "hello"); edit.fillVal(_PropMCrudB.DESC, "world");
edit.accept(); list.waitUntilShows();
list.navigation().clickNxt(); list.navigation().waitUntilPageIs("2/4"); list.navigation().clickNxt(); list.navigation().waitUntilPageIs("3/4"); list.navigation().clickNxt(); list.navigation().waitUntilPageIs("4/4");
assertThat(list.table().dataAt(2, 1), is("crudB name 10")); assertThat(list.table().dataAt(2, 2), is("hello")); assertThat(list.table().dataAt(2, 3), is((String) null));
list.table().clickSelect(2); edit.waitUntilShows();
assertThat(edit.readVal(_PropMCrudB.NAME), is("hello")); assertThat(edit.readVal(_PropMCrudB.DESC), is("world")); }
26
Gestión de Requerimientos
¿cómo se pone orden en los
requerimientos?¿gestión de
requerimientos?
27
Gestión de Requerimientos
¿qué usuario definió qué requerimiento?
¿qué requerimientos satisfacen qué objetivos de negocio?
¿qué requerimiento afecta a qué otro requerimiento?
¿dónde están diseñados e implementados los requerimientos?
28
Gestión de Requerimientos
¿qué sucede si un usuario quiere cambiar un requerimiento?
¿cómo se manejan los cambios, cuál es el proceso para manejar los cambios?
...etcétera
29
Gestión de Requerimientos
Interesados
Objetivos del Negocio
(O1, O2, O3...)
R1
R2
R3
Requisitos Casos de Uso
CU1
CU2
CU3
CU4
CU5
Diseño,Componentes
Implementación,Pruebas
X1
X2
X3
X4
X5
X6
X7
...
¿Seráimportante
también tenertrazas
con losdesarrolladores?
¿Por qué?
30
Gestión de RequerimientosEjemplo de una matriz de rastreo
R1 R2 R3 R4 R5 ...R1 XR2 X XR3 X XR4 X XR5 X X
...
X X X
Rn
RnU1 U2 U3 U4 U5 ... Un
R1 XR2 X X XR3 X X R4 X X R5 X X X
...
X X XRn
Requerimientoscon
Requerimientos(Dependencias /
Conflictos)
Requerimientoscon
Interesados
31
Requerimientos con Casos de Uso
Requerimientos con Objetivos de Negocio
Casos de uso con “artefactos” u otros componentes en diseño ...(Gestión de Configuración)
Cualquier otra cosa en la que sea necesario tener trazas o poder rastrear
¿qué va con qué? ¿qué me influencia a qué?
Gestión de Requerimientos
32
Herramientas para hacerGestión de Requerimientos*
CaliberRM (Borland) (Propietario)http://www.borland.com/us/products/caliber/index.html
DOORS (IBM / Rational) (Propietario)http://www-01.ibm.com/software/awdtools/doors/productline/
IRQA (Visure) (Propietario)http://www.visuresolutions.com/
*Requirements Management
33
Herramientas para hacerGestión de Requerimientos*
RMTOO (Flonatel GmbH & Co. KG.) (Libre)http://www.flonatel.de/projekte/rmtoo/
*Requirements Management
¡Si alguien consigue otra buena herramienta en software libre me avisa!
aNimble (Libre)http://sourceforge.net/projects/nimble
34
Calidad de los Requisitos
¿cómo sé que tengo requisitos de calidad?
35
¿Cómo sé que tengo requisitos de calidad?
Se expresan de manera cuantitativa (Los NF)(No diga que algo debe ser rápido; mejor diga qué
tan rápido debe ser)
Cada requisito debe identificarse de manera única e inequívoca (Uso de un sistema de numeración)
Deben ser correctos y validados por el cliente(muy importante)
Los requisitos se expresan de una manera sencilla, clara y sin ambigüedades
36
¿Cómo sé que tengo requisitos de calidad?
Deben ser completos (deben describir todos los estados, entidades, entradas y salidas posibles)
¿cómo sé que son completos?
Deben ser realistas o alcanzables(Soñar no cuesta nada... ¡pero hacer realidad los
sueños puede llegar a salir muy caro!)
Deben ser consistentes entre sí(No debe haber conflictos o
incompatibilidad entre requisitos)
37
¿Cómo sé que tengo requisitos de calidad?
Se les debe poder puede hacer un seguimiento(Deben estar organizados)
Deben ser verificables(medibles y sin ambigüedad, ¿se implementó o no?)
Deben estar redactados en un lenguaje correcto, simple, sencillo y contundente
(no está escribiendo una novela o un poema)
Deben describir algo que cliente o usuario necesita( resuelven los problemas del cliente¿que sentido tiene si no lo hace? )
38
Gracias
¡Gracias!