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

Ian Sommerville 2004 Software Engineering, 7th edition.

Chapter 6 Slide 1
Requerimientos del software
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 2
Objetivos
Introducir los conceptos de requerimientos del
usuario y sistema
Describir los requerimientos funcionales y no
funcionales
Explicar la forma en que los requerimientos de
software pueden ser organizados en un
documento de requerimientos de software
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 3
Tpicos expuestos
Requerimientos funcionales y no funcionales
Requerimientos del usuario
Requerimientos del sistema
Especificacin de la interfaz
El documento de requerimientos de software
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 4
Ingeniera de requerimientos
El proceso de establecimiento de los servicios
que el cliente requiere de un sistema y las
limitaciones con las que opera y se desarrolla.
Los requerimientos son la descripcin de los
servicios del sistema y las limitaciones que se
generan durante el proceso de ingeniera de
requerimientos.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 5
Qu es un requerimiento?
Puede ir desde una declaracin de un servicio
con un alto nivel de abstraccin o de una
limitacin del sistema a una detallada
especificacin funcional formal.
Esto es inevitable, ya que los requerimientos
pueden servir una doble funcin
Puede ser la base para una oferta para un contrato -
por lo tanto debe estar abierto a la interpretacin;
Puede ser la base del contrato en s - por lo tanto,
debe definirse en detalle;
Ambas declaraciones pueden llamarse
requerimientos.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 6
Abstraccin de requerimientos
(Davis)
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 7
Tipos de requerimientos
Requerimientos de usuario
Declaraciones en lenguaje natural y los esquemas
de los servicios que proporciona el sistema y sus
limitaciones operacionales. Escrito para los clientes.
Requerimientos del sistema
Un documento estructurado que establece la
descripcin detallada de las funciones del sistema,
los servicios y las limitaciones operacionales. Define
lo que debe aplicarse, de manera que puede ser
parte de un contrato entre el cliente y el contratista.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 8
Definiciones y especificaciones
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 9
Requisitos de los lectores
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 10
Requerimientos funcionales y no funcionales
Los requerimientos funcionales
Declaraciones de los servicios que debe proporcionar el
sistema, la forma en que el sistema debe reaccionar a las
entradas y la forma en que el sistema debe comportarse en
situaciones particulares.
Requerimientos no funcionales
limitaciones en los servicios o funciones ofrecidas por el
sistema como de tiempo, limitaciones en el proceso de
desarrollo, normas, etc
Requerimientos del dominio
Requerimientos que se derivan del dominio de aplicacin del
sistema y que reflejan las caractersticas de ese dominio.

Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 11
Los requerimientos funcionales
Describir las funciones o servicios del sistema.
Depender del tipo de software, de los posibles
usuarios y del tipo de sistema en el que el
software se utiliza.
Los requerimientos funcionales de los usuarios
sealan a un alto nivel de abstraccin lo que el
sistema debe hacer, pero los requerimientos
funcionales del sistema deben describir los
servicios del sistema de forma detallada.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 12
El sistema LIBSYS
Un sistema de bibliotecas que proporciona una
nica interfaz para una serie de bases de datos
de artculos en diferentes bibliotecas.
Los usuarios pueden buscar, descargar e
imprimir estos artculos para su estudio personal.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 13
Ejemplos de requerimientos funcionales
El usuario ser capaz de buscar, ya sea la
totalidad de la serie inicial de las bases de datos
o seleccionar un subconjunto de ella.
El sistema deber proporcionar vistas
apropiadas para que el usuario pueda leer los
documentos en la tienda de documentos.
A cada orden se le asignar un identificador
nico (ORDEN_ID) que el usuario ser capaz de
copiar a la cuenta del rea de almacenamiento
permanente.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 14
Imprecisin de los requerimientos
Los problemas surgen cuando los
requerimientos no son declarados con precisin.
Requerimientos ambiguos pueden interpretarse
de diferentes maneras por los desarrolladores y
usuarios.
Considerar el trmino visores apropiados
Intencin del usuario - visor de propsito especial
para cada tipo de documento diferente;
Interpretacin del desarrollador - Proporcionar un
visor de texto que muestra el contenido del
documento.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 15
Integridad de requerimientos y consistencia
En principio, los requerimientos deben estar completos y
ser consistentes.
Completitud
Todos los servicios solicitados por el usuario deben
estar definidos.
Consistencia
No debera haber conflictos o contradicciones en las
descripciones de los requerimientos del sistema.
En la prctica, es imposible producir un documento de
requerimientos completo y consistente.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 16
Requerimientos no funcionales
Estos definen las propiedades emergentes del
sistema y las limitaciones, por ejemplo fiabilidad,
tiempo de respuesta y los requerimientos de
almacenamiento. Las limitaciones son,
capacidad de dispositivos de E / S,
representaciones del sistema, etc.
El proceso de requerimientos tambin puede ser
especificado al asignarse una herramienta CASE
particular, lenguaje de programacin o
metodologa de desarrollo.
Los requerimientos no funcionales pueden ser
ms crticos que los requerimientos funcionales.
Si estos no se encuentran, el sistema es intil.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 17
Tipos de requerimientos no
funcionales
Requerimientos del producto
Requerimientos que especifican que el producto entregado
debe comportarse de una manera particular, por ejemplo la
velocidad de ejecucin, la fiabilidad, etc
Requerimientos organizacionales
Requerimientos que son consecuencia de las polticas de la
organizacin y procedimientos como, por ejemplo, estndares
de procesos utilizados, requerimientos de implementacin, etc.
Requerimientos externos
Requisitos que derivan de factores que son externos al sistema
y su proceso de desarrollo, por ejemplo, los requerimientos de
interoperabilidad, los requerimientos legislativos, etc
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 18
Tipos de requerimientos no
funcionales
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 19
Ejemplos de requerimientos no
funcionales
Requerimientos del producto
8.1 La interfaz de usuario para LIBSYS se ejecutar como HTML simple
sin marcos o applets de Java.
Requerimientos organizacionales
9.3.2 El proceso de desarrollo del sistema y la entrega de documentos se
ajustar conforme al proceso y entregas definidos en XYZCo-SP-
STAN-95.
Requerimientos externos
7.6.5 El sistema no podr divulgar cualquier informacin personal sobre
los clientes, aparte de su nombre y nmero de referencia a los
operadores del sistema.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 20
Metas y requerimientos
Los requerimientos no funcionales pueden ser muy
difciles de precisar y requerimientos imprecisos pueden
ser difciles de verificar.
Meta
En general, la intencin del usuario, como la facilidad de uso
del sistema.
Requerimiento no funcional verificable
Una declaracin tangible puede ser objetivamente probada.
Las metas son provechosas para los desarrolladores
pues transportan las intenciones de los usuarios del
sistema.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 21
Ejemplos
Una meta del sistema
El sistema debera ser fcil de utilizar por los controladores con
experiencia, y debe organizarse de tal manera que se reduzcan
al mnimo los errores de usuario.
Un requerimiento no funcional verificable
Controladores experimentados debern ser capaces de utilizar
todas las funciones del sistema despus de un total de dos
horas de formacin. Despus de esta formacin, el nmero
promedio de errores cometidos por los usuarios
experimentados no deber exceder de dos por da.

Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 22
Mtricas para los requerimientos
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 23
Interaccin de requerimientos
Los conflictos entre los diferentes requerimientos
no funcionales son comunes en sistemas
complejos.
Sistema de nave espacial
Para minimizar el peso, el nmero de chips
separados en el sistema debe reducirse al mnimo.
Para reducir al mnimo el consumo de energa, los
chips de menor consumo de energa se debe utilizar.
Sin embargo, utilizar chips de bajo consumo de
energa puede significar que ms chips tienen que
ser utilizados. Cul es el requerimiento ms crtico?
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 24
Requerimientos del dominio
Se derivan del dominio de la aplicacin del
sistema y reflejan los fundamentos del dominio
de la aplicacin.
Pueden ser requerimientos funcionales nuevos,
restringir los existentes o establecer cmo se
deben ejecutar clculos particulares.
Si los requerimientos del dominio no se
satisfacen, puede ser imposible hacer que el
sistema funcione de forma satisfactoria.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 25
Requerimientos del dominio de un
sistema de biblioteca
Se establece un estndar de interfaz de usuario
para todas las bases de datos que se basar en
la norma Z39.50.
Debido a restricciones de derechos de autor,
algunos de los documentos debern suprimirse
de inmediato a su llegada. Dependiendo de las
exigencias del usuario, estos documentos se
imprimirn localmente en el servidor del sistema
para su distribucin manual al usuario o enviarse
a una impresora de red.

Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 26
Sistema de proteccin del tren
La desaceleracin del tren se calcular como:
Dtren = Dcontrol + Dgradiente

Donde Dgradiente = 9.81ms2 * gradiente
compensado / alfa y donde los valores de
9.81ms2 / alfa son conocidos para los diferentes
tipos de tren.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 27
Problemas de los requerimientos del
dominio
Comprensibilidad
Los requerimientos son expresados en el lenguaje
del dominio de la aplicacin;
Esto a menudo no es entendido por los ingenieros
de software que desarrollan el sistema.
Lo implcito
Los expertos en el dominio pueden dejar fuera de un
requerimiento informacin, sencillamente porque
para ellos es obvia, por lo que no piensan en hacer
explcitos los requerimientos del dominio.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 28
Requerimientos del usuario
Deben describir los requerimientos funcionales y
no funcionales de tal forma que sean
comprensibles por los usuarios del sistema que
no tienen conocimientos tcnicos detallados.
Los requerimientos del usuarios se definen
utilizando lenguaje natural, tablas y diagramas
que puedan ser comprendidas por todos los
usuarios.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 29
Problemas con el lenguaje natural
Falta de claridad
Es difcil utilizar el lenguaje de forma precisa sin
hacer el documento poco conciso y difcil de leer.
Confusin de requerimientos
Los requerimientos funcionales y no funcionales
tienden a ser mezclados.
Conjuncin de requerimientos
Varios requerimientos diferentes, pueden expresarse
de manera conjunta.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 30
Requerimiento de usuario para un
sistema de compatibilidad LIBSYS
4 .. 5 LIBSYS presentar un sistema de contabilidad
financiera, que mantiene registros de todos los pagos
efectuados por los usuarios del sistema. Los
administradores del sistema pueden configurar el
sistema para que los usuarios habituales puedan
recibir tarifas de descuento.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 31
Requerimiento de usuario para un
editor de cuadrcula
2.6 Recursos de la cuadrcula. Para ayudar a la ubicacin de
entidades en un diagrama, el usuario puede activar una cuadrcula en
centmetros o pulgadas, a travs de una opcin en el panel de control.
Inicialmente, la cuadrcula est desactivada. La cuadrcula se puede
activar y desactivar en cualquier momento durante una sesin de
edicin y poner en pulgadas y centmetros. La opcin de cuadrcula se
proporcionar en vista de reduccin de ajuste, pero el nmero de lneas
de la cuadrcula a mostrar se reducir para evitar saturar el diagrama
ms pequeo con lneas de cuadrcula.

Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 32
Problemas de requerimientos
Los requerimientos de la base de datos incluyen
informacin tanto conceptual como detallada
Describe el concepto de un sistema de contabilidad financiera
que debe ser incluido en LIBSYS;
Sin embargo, tambin se incluye el detalle de que los
administradores pueden configurar este sistema - esto es
innecesario en este nivel.
Los requerimientos para con la cuadrcula mezcla tres
tipos de requerimientos
Un requerimiento funcional conceptual (la necesidad de una
cuadrcula);
Un requerimiento no funcional (unidades de la cuadrcula);
Un requerimiento de la interfaz de usuario no funcional
(activacin o desactivacin de la cuadrcula).

Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 33
Definicin de recursos
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 34
Directrices para la redaccin de los
requerimientos
Inventar un formato estndar y asegurar la
adherencia al mismo para todos los
requerimientos.
Utilizar el lenguaje de manera consistente. Para
con los requerimientos obligatorios, debera
usarse para con los requerimientos deseable.
Resaltar el texto para distinguir las partes clave
del requerimiento.
Evite el uso de jerga informtica.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 35
Requerimientos del sistema
Especificaciones ms detalladas de las
funciones del sistema, los servicios y las
limitaciones que con los requerimientos del
usuario.
Su intencin es la de ser una base para el
diseo el sistema.
Pueden ser incorporados en el contrato del
desarrollo del sistema.
Los requerimientos del sistema se puede definir
o ilustrar mediante los modelos de sistemas
discutidos en el Captulo 8.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 36
Requerimientos y diseo
En principio, los requerimientos deben indicar
qu debe hacer el sistema y el diseo debe
describir cmo se hace esto.
En la prctica, los requerimientos y el diseo son
inseparables
Una arquitectura de sistema puede ser diseada
para estructurar los requerimientos;
El sistema puede inter-operar con otros sistemas
que generan requerimientos de diseo;
El uso de un diseo especfico puede ser un
requerimiento del dominio.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 37
Problemas con especificaciones en
lenguaje natural
Ambigedad
Los lectores y escritores de los requerimientos
deben interpretar las mismas palabras de la misma
manera. El lenguaje natural es ambiguo por lo que
este, naturalmente, es muy difcil.
El exceso de flexibilidad
Lo mismo puede decirse en una serie de diferentes
maneras en la especificacin.
La falta de modularizacin
Estructuras en lenguaje natural no son suficientes
para estructurar los requisitos del sistema.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 38
Alternativas a la especificacin en
lenguaje natural
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 39
Especificaciones en lenguaje
estructurado
La libertad del escritor de los requerimientos
est limitada por una plantilla predefinida para
requerimientos.
Todos los requerimientos estn escritos en una
manera estndar.
La terminologa utilizada en la descripcin puede
ser limitada.
La ventaja es que la mayor parte de la
expresividad del lenguaje natural es mantenida,
pero un grado de uniformidad se impone en la
especificacin.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 40
Especificaciones basadas en
formulario
Definicin de la funcin o entidad.
Descripcin de las entradas y de dnde vienen.
Descripcin de las salidas y hacia dnde van.
Indicacin de otras entidades requeridas.
Pre y post condiciones (si es apropiado).
Descripcin de los efectos colaterales (si los
hubiera) de la operacin.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 41
Especificacin de nodos basada en
formularios
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 42
Especificacin Tabular
Utilizado para complementar el lenguaje natural.
Particularmente til cuando usted tiene que
definir una serie de posibles cursos de accin
alternativos.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 43
Especificacin Tabular
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 44
Modelo grfico
Modelos grficos son muy tiles cuando se
necesita mostrar cmo cambia el Estado o en
las necesita describir una secuencia de
acciones.
Diferentes modelos de grficas se explican en el
captulo 8.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 45
Diagramas de secuencia
Estas muestran la secuencia de los eventos que
tienen lugar durante la interaccin del usuario
con el sistema.
Usted lee de arriba a abajo para ver el orden de
las acciones que se llevan a cabo.
Retiro de efectivo de un cajero automtico
Validar la tarjeta;
Tratar la peticin;
Completar la transaccin.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 46
Diagrama de secuencia de retiro en
cajeros automticos
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 47
Especificacin de la interfaz
La mayora de los sistemas deben funcionar con
otros sistemas y las interfaces operativas deben
ser especificadas como parte de los
requerimientos.
Tres tipos de interfaz puede que tengan que ser
definidas
Interfaces de procedimientos;
Estructuras de datos que se intercambian;
Representaciones de datos.
Las notaciones formales son una tcnica eficaz
para la especificacin de la interfaz.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 48
Descripcin en PDL de una interfaz
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 49
El documento de requerimientos
El documento de requerimientos es la
declaracin oficial de lo que se requiere de los
desarrolladores del sistema.
Debe incluir una definicin de los requerimientos
de usuario y una especificacin de los
requerimientos del sistema.
No se trata de un documento de diseo. Como
mximo, debera establecer lo que el sistema
debe hacer en lugar de cmo debe hacerlo
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 50
Los usuarios de un documento de
requerimientos
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 51
Requisitos estndar IEEE
Define una estructura genrica para un
documento de requerimientos que debe ser
instanciada para cada sistema especfico.
Introduccin.
Descripcin general.
Requerimientos especficos.
Apndices.
ndice.

Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 52
Estructura de un documento de
requerimientos
Prefacio
Introduccin
Glosario
Definicin de requerimientos del usuario
Arquitectura del sistema
Especificacin de requerimientos del sistema
Modelos del sistema
Evolucin del sistema
Apndices
Indice
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 53
Puntos clave
Los requerimientos determinan lo que debe hacer el
sistema y definen las restricciones en su funcionamiento
e implementacin.
Los requerimientos funcionales establecen los servicios
que el sistema debe proporcionar.
Los requerimientos no funcionales restringen el sistema
en desarrollo y el proceso de desarrollo que se debe
utilizar.
Los requerimientos de usuario son declaraciones de alto
nivel de lo que el sistema debe hacer. Los
requerimientos de usuario deben ser escritos utilizando
el lenguaje natural, tablas y diagramas.
Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 6 Slide 54
Puntos clave

Los requerimientos del sistema tienen por objeto
comunicar las funciones o servicios que el
sistema debe proporcionar.
Un documento de requerimientos de software es
una declaracin de los requerimientos del
sistema.
La estndar de la IEEE es un punto de partida
til para la definicin de estndares de
requerimientos ms detallados.

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