38
1 Universidad de los Andes Demián Gutierrez Febrero 2013 REQUISITOS / REQUERIMIENTOS ¿Cómo se Documentan?

Clase 04b requerimientos documentacion

Embed Size (px)

Citation preview

Page 1: Clase 04b requerimientos documentacion

1

Universidad de los AndesDemián Gutierrez

Febrero 2013

REQUISITOS / REQUERIMIENTOS¿Cómo se Documentan?

Page 2: Clase 04b requerimientos documentacion

2

Requisitos / Requerimientos

¿qué necesito saberde un “futuro” sistema?

Page 3: Clase 04b requerimientos documentacion

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

Page 4: Clase 04b requerimientos documentacion

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

Page 5: Clase 04b requerimientos documentacion

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

Page 6: Clase 04b requerimientos documentacion

6

Requisitos / Requerimientos

¿cómo se documentanlos requisitos?

Page 7: Clase 04b requerimientos documentacion

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.

Page 8: Clase 04b requerimientos documentacion

8

¿Cómo se definen los requerimientos?Listas de “Features” (Características)

Page 9: Clase 04b requerimientos documentacion

9

¿Cómo se definen los requerimientos?Listas de “Features” (Características)

Page 10: Clase 04b requerimientos documentacion

10

¿Cómo se definen los requerimientos?Listas de “Features” (Características)

Page 11: Clase 04b requerimientos documentacion

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)

Page 12: Clase 04b requerimientos documentacion

12

¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos

Tomado de la plantilla Volere, edición 14, Enero 2009

Page 13: Clase 04b requerimientos documentacion

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

Page 14: Clase 04b requerimientos documentacion

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

Page 15: Clase 04b requerimientos documentacion

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

Page 16: Clase 04b requerimientos documentacion

16

¿Cómo se definen los requerimientos?Plantillas para Definir Requerimientos

Cuadro Resumen de Requerimientos(índice, importante)

Page 17: Clase 04b requerimientos documentacion

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

Page 18: Clase 04b requerimientos documentacion

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é?

Page 19: Clase 04b requerimientos documentacion

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

Page 20: Clase 04b requerimientos documentacion

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

Page 21: Clase 04b requerimientos documentacion

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:

Page 22: Clase 04b requerimientos documentacion

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)

Page 23: Clase 04b requerimientos documentacion

23

¿Cómo se definen los requerimientos?Lenguajes Formales

Ejemplo de “Notación Z”

No cuenten conmigo... (opinión personal)

Page 24: Clase 04b requerimientos documentacion

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

Page 25: Clase 04b requerimientos documentacion

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")); }

Page 26: Clase 04b requerimientos documentacion

26

Gestión de Requerimientos

¿cómo se pone orden en los

requerimientos?¿gestión de

requerimientos?

Page 27: Clase 04b requerimientos documentacion

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?

Page 28: Clase 04b requerimientos documentacion

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

Page 29: Clase 04b requerimientos documentacion

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é?

Page 30: Clase 04b requerimientos documentacion

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

Page 31: Clase 04b requerimientos documentacion

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

Page 32: Clase 04b requerimientos documentacion

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

Page 33: Clase 04b requerimientos documentacion

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

Page 34: Clase 04b requerimientos documentacion

34

Calidad de los Requisitos

¿cómo sé que tengo requisitos de calidad?

Page 35: Clase 04b requerimientos documentacion

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

Page 36: Clase 04b requerimientos documentacion

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)

Page 37: Clase 04b requerimientos documentacion

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? )

Page 38: Clase 04b requerimientos documentacion

38

Gracias

¡Gracias!