Вы находитесь на странице: 1из 43

Ingeniera de Software II

Requerimientos del software

Prof. Ing. Edgar Muante Villafuerte

Ingeniera de Software II

Slide 1

INTRODUCCION
Trata de lo que el sistema debe hacer, sus propiedades
emergentes y esenciales, y las restricciones en el
funcionamiento del sistema y los procesos de desarrollo
de software. Es el proceso de comunicacin entre los
clientes y usuarios del software y los desarrolladores del
mismo.
Requermiento
del cliente.
Requerimiento
del
Desarrollador
Ingeniera de Software II

Slide 2

Ingeniera de Requerimiento

Ingeniera de Software II

Slide 3

Actividades A Realizar
Las actividades son de cinco clases.
Obtener requisitos: a travs de entrevistas o comunicacin
con clientes o usuarios, para saber cules son sus expectativas.

Analizar requisitos: detectar y corregir las falencias


comunicativas, transformando los requisitos obtenidos de
entrevistas y requisitos, en condiciones apropiadas para ser
tratados en el diseo.

Documentar requisitos: igual que todas las etapas, los


requisitos deben estar debidamente documentados.

Verificar los requisitos: consiste en comprobar el correcto


funcionamiento de un requisito en la aplicacin.

Validar los requisitos: comprobar que los requisitos


implementados se corresponden con lo que inicialmente se
pretenda.

Ingeniera de Software II

Slide 4

A qu se le llama Ingeniera de
Requerimientos?
Se denomina ingeniera de requerimiento al proceso de
descubrir, analizar, documentar y verificar los servicios
proporcionados por el sistema y sus restricciones
operativas.

Ingeniera de Software II

Slide 5

Que se entiende por requerimiento?


Cuando el Cliente solicita que se desarrolle un sistema tiene algunas
nociones de lo que debe hacer.
Por est razn cada sistema basado en software tiene un propsito,
usualmente expresado con algo que el sistema debe hacer.
Un Requerimiento es una caracterstica del sistema o una
descripcin de algo que el sistema es capaz de hacer con el objeto
de satisfacer el propsito del sistema.

Ingeniera de Software II

Slide 6

Que se entiende por requerimiento?


Es decir, los requerimientos son lo que los clientes/usuarios esperan que haga el
sistema.
Los analistas, por lo tanto, deben entender el problema de los usuarios en su
cultura y con su lenguaje y construir el sistema que resuelve sus necesidades.
En si el objetivo del anlisis de requerimientos es resolver el problema.
Requermiento
del cliente.

Requerimiento
del
Desarrollador
Ingeniera de Software II

Slide 7

Requerimientos v/s Diseo


Los requerimientos definen el Qu (el problema) del sistema.
El Diseo define el Cmo (la solucin).
Durante el anlisis de requerimientos no se consideran
descripciones
especificas
de
la
implementacin
como
requerimientos, a menos que el cliente lo pida (Ej.: bases de datos
especificas, lenguajes de programacin, etc.).
Los requerimientos, por lo
cliente/usuario y el problema.

tanto

deben

Ingeniera de Software II

centrarse

en

el

Slide 8

Importancia de los requerimientos


En 1994 el Standish Group hizo un estudio sobre 350 compaas y cerca
de 8000 proyectos de software para averiguar como les estaba llendo.
Los resultados fueron desencantadores:
El 31% de los proyectos de software fueron cancelados antes de tiempo
(2480 proyectos).
En las grandes compaas, slo el 9% de los proyectos fue entregado en
el termino de tiempo y dentro del costo que se presupuestaron; el 16%
satisfizo estos requerimientos en las compaas pequeas.

Ingeniera de Software II

Slide 9

Importancia de los requerimientos


En 1995 Standish pidi a los participantes que especificarn las causas.
Los resultados fueron los siguientes:
Requerimientos incompletos (13,1%).
Falta de compromiso del usuario (12,4%).
Falta de recursos (10,6%).
Expectativas no realistas (9,9%).
Falta de soporte ejecutivo (9,3%).
Requerimientos y especificaciones cambiantes (8,7%).
Falta de planeamiento (8,1%).
Fin de la necesidad del sistema (7,5%).

Ingeniera de Software II

Slide 10

Documentos de Requerimientos
Existen dos documentos que emanan del anlisis de requerimientos:
Definicin de requerimientos
Es un documento que debe escribirse en trminos que el cliente
pueda entender. Es decir, este documento es un listado completo de
todas las cosas que el cliente espera que haga el sistema propuesto.
Este documento es escrito en forma conjunta por el cliente y el
desarrollador.

Ingeniera de Software II

Slide 11

Documentos de Requerimientos
Especificacin de requerimientos

Documento que reitera la definicin de los requerimientos en los


trminos tcnicos apropiados para el desarrollador del diseo de un
sistema.
Es
la contrapartida tcnica al documento de definicin de
requerimientos y es escrito por los analistas de requerimientos.

A veces un nico documento puede servir para ambos propsitos, lo que


lleva a un entendimiento comn entre clientes, analistas de
requerimientos y diseadores.
Pero a menudo se necesitan ambos documentos.

Ingeniera de Software II

Slide 12

Documentos de Requerimientos
Es muy importante, que al usar ambos documentos exista un
correspondencia directa entre cada requerimiento del documento de
definicin y aquellos documentos en la especificacin.
Esto para que la visin del cliente este unida a la de los
desarrolladores (esto se logra gracias a la gestin de configuracin).

Ingeniera de Software II

Slide 13

Clasificacin de Requerimientos
segn a quien van dirigidos:
Requerimientos del Usuario.
Requerimientos del Sistema.
Son
declaraciones,
en
lenguaje natural y diagramas,
de los servicios que el sistema
proporcione
y
de
las
restricciones bajo las cuales
debe funcionar.

Establecen con detalle las


funciones,
servicios
y
restricciones operativas del
sistema. El documento de
requerimientos del sistema
debe ser funcional. Debe
definir exactamente qu es lo
que se va a implementar.

Requerimientos
del Usuario

Requerimientos
del Sistema
Ingeniera de Software II

Slide 14

Ejemplo:

Ingeniera de Software II

Slide 15

Clasificacin de los requerimientos del


sistema

De
Dominio

Funcionales

No
Funcionales

Ingeniera de Software II

Slide 16

Clasificacin de los requerimientos


del sistema
Requerimientos funcionales
Describen la funcionalidad o los servicios que se espera que el
sistema proveer. Dependen del tipo de software, del sistema que
se desarrollo y de los posibles usuarios.
Cuando se expresan como Requerimientos del usuarios, se definen
de forma general.
Cuando se expresan como requerimiento del sistema describen con
detalle la funcin de ste, sus entradas y salidas, excepciones, etc.

Ingeniera de Software II

Slide 17

Ejemplo de RF:
1.

2.

3.

El usuario deber tener la posibilidad de buscar en el


conjunto inicial de la base de datos o seleccionar un
subconjunto de ella.
El sistema deber proporcionar visores adecuados para
que el usuario lea documentos en el almacn de datos.
A cada pedido se le deber asignar un identificador
nico, que el usuario podr copiar al area de
almacenamiento permanente de la cuenta.

Ingeniera de Software II

Slide 18

Clasificacin de los requerimientos


del sistema
Requerimientos no funcionales
Son los requerimientos que no se refieren directamente a las funciones
especficas que entrega el sistema, sino a las propiedades emergentes de
ste, como la fiabilidad, la respuesta en el tiempo y la capacidad de
almacenamiento.
Muchos requerimientos no funcionales se refieren al sistema como un todo
ms que a rasgos particulares del mismo.
A menudo son mas crticos que los funcionales. Mientras que un
incumplimiento de un requerimiento funcional degrada el sistema, el de un
requerimiento no funcional del sistema lo inutiliza.

Ingeniera de Software II

Slide 19

Clasificacin de los requerimientos


del sistema
Requerimientos no funcionales
Los requerimientos no funcionales se clasifican segn su implicancia:
Del producto: especifican comportamiento del producto. Ej.:
de
desempeo en la rapidez de ejecucin del sistema, cuanta memoria se
requiere; los de fiabilidad que fijan la tasa de fallas para el sistema sea
aceptable, los de portabilidad y de usabilidad.

Organizacionales: se derivan de las polticas y procedimientos existentes


en la organizacin del cliente y del desarrollador. Ej.: estndares en los
procesos que deben utilizarse, requerimientos de implementacin como los
lenguajes de programacin o el mtodo de diseo a utilizar.

Ingeniera de Software II

Slide 20

Clasificacin de los requerimientos


del sistema
Requerimientos no funcionales
Externos: cubre todos los requerimientos que se derivan de los factores
externos al sistema y de su proceso de desarrollo. Ej.: requerimientos de
interoperabilidad, requerimientos legales, requerimientos ticos.

Un problema comn con los requerimientos no funcionales es que algunas


veces son difciles de verificar.

De forma ideal los requerimientos no funcionales se deben expresar de


manera cuantitativa utilizando mtricas que se puedan probar de forma
objetiva. En la prctica, es difcil. El costo es muy alto.

Ingeniera de Software II

Slide 21

Ejemplo de R. No Funcionales:

Nota: Siempre que sea posible, se deben redactar los requerimientos


no funcionales de manera cuantitativa para que se puedan probar de
un modo objetivo.
Ingeniera de Software II
Slide 22

Ejemplo de Metas del sistema y


requerimientos verificables:

Une meta del sistema


Debe ser fcil para tos controladores experimentados
utilizar el sistema y se debe organizar de tal modo que se
minimicen los errores del usuario

Un requerimiento no funcional verificable


Despus de una formacin de dos horas, a los
controladores experimentados les deber ser posible
utilizar todas las funciones del sistema. Despus de esta
formacin, la media de errores cometidos por tos
usuarios experimentados no exceder de dos por da.

Ingeniera de Software II

Slide 23

Mtricas para especificar requerimientos no


funcionales:

Ingeniera de Software II

Slide 24

Clasificacin de los requerimientos


del sistema
Requerimientos del dominio

Se derivan del dominio del sistema ms que de las necesidades


especificas del usuario.
Son importantes debido a que a menudo reflejan los fundamentos del
dominio de la aplicacin. Si estos no se satisfacen es imposible que el
sistema trabaje de forma satisfactoria.
Estos se expresan utilizando un lenguaje especifico del dominio de la
aplicacin que a menudo es difcil de comprender. Ej.: operacin para
calcular desaceleracin del tren, para un sistema de control de trenes.

Ingeniera de Software II

Slide 25

Ejemplo de Requerimientos del


dominio:
El sistema LIBSYS incluye varios requerimientos del
dominio:
1.

2.

Deber existir una interfaz de usuario estndar para todas


las bases de datos que estar basada en el estndar Z39.50.
Debido a las restricciones de derechos de autor, algunos
documentos debern borrarse despus de su llegada, se
imprimirn de forma local en el servidor y sern distribuidos
de forma manual.

Ingeniera de Software II

Slide 26

Caractersticas de los requerimientos


Es importante sealar que los requerimientos pueden servir a tres
propsitos:
Permitir que el desarrollador explique como ha entendido lo que el
cliente pretende del sistema.

Indican a los diseadores que funcionalidades y caractersticas va a


tener el sistema resultante.

Los requerimientos indican al equipo de pruebas que demostraciones


llevar a cabo para convencer al cliente de que el sistema que se le
entrega es de hecho lo que haba ordenado.

Ingeniera de Software II

Slide 27

Caractersticas de los requerimientos


Los requerimientos deben ser de alta calidad para la buena comprensin
de clientes y desarrolladores.
Con este fin debe comprobarse que los requerimientos posean las
caractersticas que se desprenden de las siguientes preguntas:
los requerimientos son correctos?. Cliente y desarrollador deben
revisarlos para asegurarse que no tienen errores.

los requerimientos son consistentes?. Es decir, los requerimientos


planteados son no conflictivos ni ambiguos?. Dos requerimientos son
inconsistentes cuando es imposible satisfacerlos simultneamente.

Ingeniera de Software II

Slide 28

Caractersticas de los requerimientos


los requerimientos son completos?. El conjunto de requerimientos es
completo si todos los estados posibles, cambios de estado, entradas,
productos, restricciones estn descritos en alguno de los requerimientos.

los requerimientos son realistas?.El sistema puede hacer realmente lo


que el cliente esta pidiendo que haga?. Todos los requerimientos deben ser
revisados para asegurarse que son posibles.

describe cada requerimiento algo que es necesario para el cliente?.


Los requerimientos deben ser revisados para conservar slo aquellos que
inciden directamente en la resolucin del problema del cliente.

los requerimientos son verificables?. Debemos preparar pruebas que


demuestren que se han cumplido los requerimientos.

Ingeniera de Software II

Slide 29

Caractersticas de los requerimientos


los requerimientos son rastreables?. Se puede rastrear cada
funcin del sistema hasta el conjunto de requerimientos que la
establece?. Resulta fcil encontrar el conjunto de requerimientos que
coinciden a un aspecto especifico del sistema?.

Ingeniera de Software II

Slide 30

REQUERIMIENTOS
DEL USUARIO

Ingeniera de Software II

Slide 31

Los requerimientos del usuario para un


sistema
deben
describir
los
requerimientos funcionales y no
funcionales de tal forma que sean
comprensibles para los usuarios del
sistema sin conocimiento tcnico
detallado.

nicamente deben especificar el comportamiento externo del sistema y deben


evitar, tanto como sea posible, las caractersticas del diseo del sistema.

Ingeniera de Software II

Slide 32

Ejemplo de cmo redactar un


requerimiento de usuario:

Ingeniera de Software II

Slide 33

Recomendaciones para redactar los


requerimientos del usuario:
1.

2.

3.

4.

Inventar un formato estndar y asegurar que todos los


requerimientos se adhieran al formato.
Utilizar el lenguaje de forma consistente. Distinga entre
requerimientos obligatorios y requerimientos deseables.
Resalte el texto (con negrita, cursiva, color) para
distinguir las partes claves del requerimiento.
Evitar el uso de jerga informtica.
Ingeniera de Software II

Slide 34

Notaciones para la especificacin de


requerimientos

Ingeniera de Software II

Slide 35

Ejemplo: (Lenguaje Estructurado)

Ingeniera de Software II

Slide 36

Ejemplo: (Lenguaje de descripcin de diseo)

Ingeniera de Software II

Slide 37

Ejemplo:
(Notaciones
Grficas)

Ingeniera de Software II

Slide 38

Ejemplo: (Especificaciones Matemticas)

Ingeniera de Software II

Slide 39

El documento de requerimientos del


software:

Es la declaracin oficial de qu deben implementar


los desarrolladores del sistema. Debe incluir tanto
los requerimientos del usuario para el sistema como
una especificacin detallada de los requerimientos
del sistema.

Ingeniera de Software II

Slide 40

Quines son los usuarios del


documento de requerimientos?

Ingeniera de Software II

Slide 41

IEEE/ANS 830-1998 (IEEE, 1998)


1.

2.

3.

4.
5.

Introduccin
1.1 Propsito del documento de requerimientos
1.2 Alcance del producto
1.3 Definiciones, acrnicos y abreviaturas
1.4 Referencias
1.5 Descripcin del resto del documento
Descripcin general
2.1 Perspectiva del producto
2.2 Funciones del producto
2.3 Caractersticas del usuario
2.4 Restricciones generales
2.5 Suposiciones y dependencias
Requerimientos especficos: incluyen los requerimientos funcionales, no funcionales y de interfaz.
Obviamente, sta es la parte ms sustancial del documento, pero debido a la amplia variabilidad en la
prctica organizacional, no es apropiado definir una estructura estndar para esta seccin. Los
requerimientos pueden documentar las interfaces externas, describir la funcionalidad y el rendimiento
del sistema, especificar los requerimientos lgicos de la base de datos, las restricciones de diseo, las
propiedades emergentes del sistema y las caractersticas de calidad.
Apndices
ndice
Ingeniera de Software II

Slide 42

Ingeniera de Software II
Slide 43

Estructura de un Documento de Requerimientos

Вам также может понравиться