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

1

INGENIERA de
REQUERIMIENTOS
Unidad V
Requerimientos No Funcionales
Tipos de Requerimientos
Requerimientos funcionales: Son declaraciones
de los servicios y funciones que proveer el
sistema. En algunos casos, los requerimientos
funcionales de los sistemas tambin declaran
explcitamente lo que el sistema no debe hacer.
Requerimientos no funcionales: Conforman
restricciones de los servicios o funciones
ofrecidos por el sistema. Incluyen restricciones de
tiempo, sobre el proceso de desarrollo,
estndares, etc.
RF vs. RNF
La distincin entre lo que es un requerimiento
funcional y lo que es un requerimiento no
funcional no siempre est clara.
Parte de esta razn est dada por el hecho de que
los RNFs estn siempre relacionados a un
requerimiento funcional.
RF expresa algn tipo de transformacin que
tiene lugar en el software,
RNF expresa cmo esa transformacin se
comportar o qu cualidades especficas
deber poseer.
RF vs. RNF: Ejemplo
Supongamos que nos encontramos en el dominio
de laboratorios de anlisis clnicos,
RF = El sistema debe proveer una entrada de
datos que posibilite la asignacin de resultados
de exmenes de un paciente en particular por
tcnicos, supervisores y jefes.
RF vs. RNF: Ejemplo
Este mismo requerimiento funcional podra tener
asociado un RNF del tipo:
RNF = Algunos exmenes debern tener
tratamiento especial para la entrada de
resultados. Para estos exmenes, valores por
encima o por debajo de predeterminados valores
slo podrn ser ingresados por jefes de seccin.
RF vs. RNF: Ejemplo
Es importante resaltar que esto ltimo no representa una
funcin del sistema, y s una restriccin de una funcin
existente: Entrar resultados de exmenes.
Lo que se ve aqu es que esa funcin deber estar
restringida de forma tal que, cuando es utilizada por
personas que no sean jefes, tendr como condicin que
esas personas ingresen un valor que se encuentre
dentro de lmites preestablecidos.
2
RF vs. RNF: Ejemplo
Es visible que este RNF demandar un proceso de
seguridad en el tratamiento de acceso a mdulos
del software ms complejo que aquel que sera
implantado si slo hubiera sido especificado el
requerimiento funcional. De esta forma, la elicitacin
tarda o la no elicitacin del requerimiento no
funcional ciertamente implicara un gran retrabajo.
Requerimientos No Funcionales (RNFs)
No especifican funciones que brinda el sistema,
sino sus propiedades emergentes: fiabilidad, tiempo
de respuesta, capacidad de almacenamiento, etc.
Definen las restricciones del sistema: capacidad
de los dispositivos de entrada/salida, representacin
de datos que se utiliza en las interfaces, etc.
Definen las caractersticas que indican cmo el
sistema debe realizar su trabajo; por ejemplo,
eficiencia, hardware necesario, etc.
RNFs
Los requerimientos no funcionales se refieren al
sistema como un todo ms que a rasgos
particulares del mismo;
=> a menudo son ms crticos que los requerimientos
funcionales particulares.
Mientras que el incumplimiento de un
requerimiento funcional degradar al sistema,
una falla en un requerimiento no funcional del
sistema puede inutilizarlo.
RNF: Clasificacin (Ian Sommerville)
Requerimientos
nofuncionales
Requerimientos
nofuncionales
Requerimientos
del producto
Requerimientos
del producto
Requerimientos
organizacionales
odeproceso
Requerimientos
organizacionales
odeproceso
Requerimientos
externos
Requerimientos
externos
Requerimientos
deusabilidad
Requerimientos
deusabilidad
Requerimientos
deeficiencia
Requerimientos
deeficiencia
Requerimientos
defiabilidad
Requerimientos
defiabilidad
Requerimientos
deportabilidad
Requerimientos
deportabilidad
Requerimientos
deentrega
Requerimientos
deentrega
Requerim. de
implementacin
Requerim. de
implementacin
Requerimientos
deestndares
Requerimientos
deestndares
Requerim. de
interoperabilidad
Requerim. de
interoperabilidad
Requerimientos
ticos
Requerimientos
ticos
Requerimientos
legislativos
Requerimientos
legislativos
Requerimientos
deprivacidad
Requerimientos
deprivacidad
Requerimientos
deseguridad
Requerimientos
deseguridad
RNF: Requerimientos del producto
Restringen el comportamiento del producto.
Ejemplos:
requerimientos de desempeo en la rapidez de ejecucin
del sistema y cunta memoria se requiere;
requerimientos de fiabilidad que fijan la tasa de fallas
para que el sistema sea aceptable;
requerimientos de portabilidad: esfuerzo requerido para
transferir un programa de una configuracin hardware o
entorno software a otro),
Requerimientos de usabilidad (esfuerzo necesario para
aprender, operar, preparar entradas e interpretar la
salida).

RNF: Requerimientos organizacionales


Se derivan de las polticas y procedimientos existentes en
la organizacin del cliente y en la del desarrollador.
Tambin se denominan de Proceso, porque se refieren
al proceso de desarrollo del software.
Ejemplos:
Estndares en los procesos que deben utilizarse;
Requerimientos de implementacin como los lenguajes
de programacin o el mtodo de diseo a utilizar;
Requerimientos de entrega que especifican cundo se
entregar el producto y su documentacin (qu se
entregar).

3
RNF: Requerimientos externos
Se incluyen todos los requerimientos que se derivan de los
factores externos al sistema y de su proceso de desarrollo.
Estos incluyen:
los requerimientos de interoperabilidad que definen la
manera en que el sistema interacta con los otros
sistemas/hardware de la organizacin;
los requerimientos legales que deben seguirse para
asegurar que el sistema opere dentro de la ley;
los requerimientos ticos, que son impuestos al sistema
para asegurar que ser aceptado por el usuario y por el
pblico en general.

1. El sistema debe permitir la impresin de informes tanto en la


impresora A (lser) como en la B (matriz de punto). ?
2. El sistema debe ser operable con diferentes sistemas operativos
(por ejemplo, Windows y Linux). ?
3. El sistema debe ser operable en diversos navegadores (por ej.,
Explorer y Firefox). ?
4. El formato del documento de factura debe ser compatible con el
dispuesto por la DGI. ?
5. El proceso de desarrollo del sistema y los documentos a entregar
debern apegarse al proceso y los productos definidos en el
estndar X. ?
6. El sistema no deber revelar a sus operadores alguna
informacin personal de los clientes excepto su nombre y nmero
de referencia. ?
Algunos ejemplos
1. El sistema debe permitir la impresin de informes tanto en la
impresora A (lser) como en la B (matriz de punto). (Externo
Interoperabilidad)
2. El sistema debe ser operable con diferentes sistemas operativos
(por ejemplo, Windows y Linux). (Producto Usabilidad /
Portabilidad)
3. El sistema debe ser operable en diversos navegadores (por ej.,
Explorer y Firefox) (Producto Usabilidad / Portabilidad)
4. El formato del documento de factura debe ser compatible con el
dispuesto por la DGI. (Externo Legal)
5. El proceso de desarrollo del sistema y los documentos a entregar
debern apegarse al proceso y los productos definidos en el
estndar X. (Organizacional De estndares)
6. El sistema no deber revelar a sus operadores alguna informacin
personal de los clientes excepto su nombre y nmero de referencia.
(Externo Privacidad / tico).
Algunos ejemplos
RNFs: Dificultades de tratamiento
Los RNFs no son cubiertos adecuadamente por la
mayora de los mtodos de ingeniera de
requerimientos.
Existen mtodos de IR que generalmente estn
basados en el anlisis funcional o en el anlisis
orientado a objetos y que inherentemente son
limitados en cuanto a los RNFs.
Son diversos y deben expresarse generalmente
en formas especficas del dominio.
RNFs: Dificultades de tratamiento Por
qu?
Hay ciertos puntos que no contribuyen al problema
de expresar requerimientos no funcionales:
1. Ciertos requerimientos, por ejemplo tiempo de
respuesta frente a fallas, que estn
relacionados con una solucin de diseo que
es desconocida en la etapa de captura de
requerimientos.
2. Otras restricciones son sumamente subjetivas.
RNFs: Dificultades de tratamiento Por
qu?
3. Los requerimientos no funcionales tienden a
relacionarse con uno o ms requerimientos
funcionales Expresar ambos requerimientos
por separado hace dificultosa la tarea de
encontrar una relacin entre ellos, aunque
enunciarlos juntos dificulta la tarea de separar las
consideraciones funcionales de las no
funcionales.
4
RNFs: Dificultades de tratamiento Por
qu?
4. Los requerimientos no funcionales tienden a
conflictuar y a contradecirse entre s.
5. No hay reglas o guas para determinar cundo
los RNFs se logran de manera ptima. Cada
solucin puede provocar una propuesta para una
solucin ms refinada.
RNFs: Caractersticas que dificultan su
especificacin y anlisis:
Los requerimientos no funcionales pueden ser
subjetivos, ya que pueden ser interpretados y
evaluados de manera distinta por diferentes personas;
Los requerimientos no funcionales pueden ser
relativos, ya que su importancia y descripcin puede
variar dependiendo del dominio particular que se est
considerando;
Los requerimientos no funcionales pueden ser
interdependientes, ya que la satisfaccin de un RNF
particular puede incidir negativa o positivamente para
que otro RNF sea satisfecho.
Los errores provenientes de no tratar
correctamente los RNFs, o de
simplemente no tenerlos en cuenta, los
posiciona entre los requerimientos ms
caros y ms difciles de corregir
Luiz Marcio Cysneiros Requerimientos No Funcionais:
Da Elicitao ao Modelo Conceitual PhD Thesis, Depto.
De Informtica. PUC-Rio, feb. 2001.
RNFs
Cysneiros presenta en su tesis un proceso para
gestionar los requerimientos no funcionales desde
las primeras etapas de desarrollo de software.
OBJETIVO:
La integracin de los RNF (elicitados durante las fases
iniciales de desarrollo) con los modelos conceptuales
generados a partir de los requerimientos funcionales,
deber permitir obtener un modelo conceptual que
gestione los requerimientos funcionales y no funcionales
al mismo tiempo, obtenindose as modelos ms
completos y de mejor calidad.
Elicitacin de RNFs
Elicitacin de RNFs: demanda el uso de una notacin que:
Permita que la informacin no se pierda en el tiempo.
Posibilite el trabajo con los RNFs de una manera
organizada y facilite trabajar con las interdependencias.
Como los Requerimientos deben ser elicitados desde las
primeras etapas del proceso de desarrollo de software,
necesitamos as de una manera de elicitar y representar
a los RNFs.
Elicitacin de RNF: Grafos
RNF se representan como metas a ser
satisfechas. Cada meta ser
descompuesta en subsecuentes submetas
hasta encontrarnos con las llamadas
operacionalizaciones.
operacionalizacin = acciones o
atributos que claramente identifiquen lo
que es necesario para satisfacer la meta
principal.
5
Ejemplo: Grafo de RNF
En el caso de Seguridad en la gestin de una cuenta
bancaria, por ejemplo, integridad, confidencialidad y
disponibilidad pueden ser posibles descomposiciones de
esta meta.
Integridad: Proteger el SI y sus recursos relacionados, limitando la
gestin sobre los mismos a personas autorizados y programas de
aplicacin aprobados y autorizados, protegindolos contra prdida,
destruccin o modificaciones accidentales o intencionales.
Confidencialidad: asegurar que el SI y sus recursos relacionados sean
slo accedidos por aquellas personas autorizados a tener acceso.
Disponibilidad: Asegurar que los usuarios autorizados tienen acceso
al SI y sus recursos relacionados, en tiempo y forma, cuando sean
requeridos.
Paso 1: Grafo General
Seguridad de la cuenta
Confidencialidad
Disponibilidad
Completitud
Precisin
Integridad
Paso 2: Refinamiento del
Grafo
Seguridad de la cuenta
Confidencialidad
Disponibilidad
Completitud Precisin
Integridad
Necesidad de
autorizacin
Validar Acceso
Acceso de usuario
Autenticado
Identificar
Usuarios
Usar P.I.N Comparar Firma
Requerir Informacin
Adicional
Paso 3: Anlisis de
Interdependencias
Seguridad de la cuenta
Confidencialidad
Disponibilidad
Completitud
Precisin
Integridad
Necesidad de
autorizacin
Validar Acceso
Acceso de usuario
Autenticado
Identificar
Usuarios
Usar P.I.N Comparar Firma
Requerir Informacin
Adicional
+
Acceso amigable
al usuario
-
Tiempo de
Respuesta
-
6
Paso 4: Trabajar con
Conflictos
Seguridad de la
cuenta
Confidencialidad
Disponibilidad
Completitud
Precisin
Integridad
Necesidad de
autorizacin
Validar Acceso
Acceso de usuario
Autenticado
Identificar
Usuarios
Usar P.I.N Comparar Firma
Requerir Informacin
Adicional
+
Acceso amigable
al usuario
-
Tiempo de
Respuesta
-


Grafo RNF: Operacionalizaciones
Las operacionalizaciones pueden ser:
dinmicas : denotan acciones a ser realizadas. En el
grafo RNF pueden figurar tanto a nivel de hoja como en
niveles intermedios (por ejemplo, Validar Acceso).
estticas : expresan la necesidad de ciertos datos a ser
usados en el diseo para almacenar informacin que es
necesaria para satisfacer un RNF. Estn siempre a nivel
de hojas en el grafo RNF (por ejemplo PIN).
...
RNF [SIMBOLO]
...
EST_1 DIN_1 DIN_2 EST_2
SIMBOLO
EST_1
EST_2
DIN_1()
DIN_2()
Si Smbolo no existe con
entrada en el LEL, entonces
hay una alias que est
faltando definir.
Representacin RF y RNF
LEL
Casos de Uso
Grafos RNF
VISTA
FUNCIONAL
VISTA NO
FUNCIONAL
Cisneyros propone una reestructuracin del LEL,
debido a que su versin ms comn generalmente
est compuesta por smbolos relacionados con los
requerimientos funcionales.
Reestructuracin del LEL
El LEL es reestructurado para:
Expresar que para un smbolo determinado son
necesarios uno o ms RNFs.
Manejar los enlaces de dependencia entre un RNF
y todas las nociones e impactos (behavioral
responses) que son necesarios para satisfacer
este RNF.
7
De LEL a grafos RNFs
Primer paso: Mejorar LEL con RNFs.
Recorrer todos los smbolos existentes en el
LEL y preguntar a los stakeholders y a
nosotros mismos si algn RNF puede ser
asociado al smbolo de ese LEL.
En la tesis se utiliza una base de conocimiento
de RNF, en donde se analiza cada smbolo del
LEL con cada RNF existente en la BC.
Primer paso: Ejemplo
Lo escrito con verde es un patrn que aclara el RNF por el cual surgen los impactos. Esto ayuda
para la trazabilidad en el caso de tener que realizar cambios o eliminaciones de smbolos LEL.
DC
Ejemplo:
1. El smbolo Muestra tiene entre sus nociones el RNF
Trazabilidad.
2. Se tuvo que agregar un impacto, que aclara que debe
ser posible conocer dnde se encuentra una muestra
y dnde ha estado.
3. Por esto, se tiene que agregar otro impacto en
Fusionar muestras, que describe que el sistema
debera mantener un registro sobre qu muestras
son originadas a partir de otras muestras.
Todos los RNFs representados en el LEL tendrn
que ser representados usando grafos de RNFs:
Se deber revisar cada entrada en el LEL
buscando nociones que describan necesidades
de RNF.
Para cada RNF encontrado para ese smbolo, se
genera el grafo RNF.
Por lo tanto, un mismo smbolo LEL puede estar
asociado a varios grafos RNF:
Segundo Paso: Generar Grafos RNF.
Smbolo X RNF1[Smbolo X]; RNF2 [Smbolo X]; ;
RNFn [Smbolo X];
De LEL a grafos RNFs
Los grafos se realizan ya que permiten una
visualizacin general de cada RNF, con sus
submetas y las dependencias entre ellas.
Utilizando solamente las fichas LEL, no sera
posible analizar dependencias y conflictos tal
como se realiza en los Grafos RNF.
Segundo Paso: Generar Grafos RNF.
(cont.)
En este paso es necesario observar las
posibles interdependencias (tanto positivas
como negativas) entre RNFs.
Por ejemplo: Un RNF que exprese alto nivel de
Seguridad, puede tener un impacto negativo
con el RNF Usabilidad.
Tercer Paso: Analizar Dependencias.
De LEL a grafos RNFs
8
Seguridad de la cuenta
Confidencialidad
Disponibilidad
Completitud
Precisin
Integridad
Necesidad de
autorizacin
Validar Acceso
Acceso de usuario
Autenticado
Identificar
Usuarios
Usar P.I.N Comparar Firma
Requerir Informacin
Adicional
+
Acceso amigable
al usuario
-
Tiempo de
Respuesta
-
Integracin de Vistas Funcional y No
Funcional
RNF Diagramas de clases, secuencia
y colaboracin.
...
TRAZABILIDAD [MUESTRA]
...
EST_1 DIN_1 DIN_2 EST_2
SIMBOLO
EST_1
EST_2
DIN_1()
DIN_2()
MUESTRA
Integracin de vistas
Para poder trabajar con RNFs a nivel de modelos
que expresan la visin funcional, se propone extender
los diagramas de clases, secuencia y colaboracin.
Estas extensiones facilitarn la representacin de los
impactos provenientes de los RNFs, su anlisis y su
rastreo en forma reversa hasta llegar a los grafos
RNF y el LEL.
Extensin del Diagrama de Clases
Muestra
Id_muestra
Tamao
NR_componente {Trazabilidad[Muestra]}
NR_ubicacion {Trazabilidad[Muestra]}
CrearMuestra()
EliminarMuestra()
RastrearMuestra {Trazabilidad[Muestra]}()
Operaciona
lizaciones
estticas del
grafo RNF
Trazabilidad
[Muestra]
Operacionalizacindinmicadel grafo RNF Trazabilidad [Muestra]
Extensin del Diagrama de Clases
Toda clase debe ser un smbolo del LEL.
Todos los tpicos de los RNFs tambin deben ser
smbolos del LEL (por ejemplo Trazabilidad de
Muestra) Esto facilita el hecho de saber qu
RNFs se aplican a una clase determinada.
Deben analizarse, una a una, todas las clases del
Diagrama de clases para saber si ellas deben
satisfacer algn RNF.
Una vez que se escoge una clase se buscan todos
los grafos RNF asociados a ella.
9
Extensin del Diagrama de Clases
Luego se evala si cada una de las
operacionalizaciones (tanto estticas como
dinmicas) del RNF son satisfechas por la clase
(atributos y operaciones).
Se debe tener en cuenta, en el caso de existencia
de herencia, si las operacionalizaciones no estn
ya declaradas en la clase padre.
Esto se repite hasta no encontrar ms grafos RNF
que contengan el smbolo del LEL que nombra a la
clase.
Extensin del Diagrama de Clases
Hay que notar que, muchas veces, los RNFs
terminan descomponindose en
operacionalizaciones dinmicas
(operaciones/mtodos) que representan a su vez
RF.
Por lo tanto, esta estrategia, sirve tambin como
verificacin de los RF.
Extensiones de los diagramas de
secuencia y colaboracin
La integracin de los RNFs a los diagramas de
secuencia y colaboracin apunta a incrementar los
mensajes eventuales entre clases, como as
tambin el agregado de condiciones especiales
para la ejecucin de los mensajes.
Extensin del Diagrama de Secuencia
:Administrador
LIS
:Listado
Muestras
: Muestra
1: ObtenerHist ori a(Id_muest ra)
2: BuscarMuestra(Id_Muestra)
3: GenerarHistoria(Id_Muestra)
4: RastrearMuestra()
{Trazabili dad
[Muestra]}
5: ImprimirHistoria(Id_muestra)
Extensin del Diagrama de Colaboracin
:Administra
dor LIS
: Listado
Muest ras
: Muestra
1: ObtenerHistoria(Id_muestra)
2: BuscarMuestra(Id_Muestra)
3: GenerarHist ori a(Id_Muestra)
4: RastrearMuestra()
5: ImprimirHistoria(Id_muestra)
{Trazabilidad
[ Muestra]}
CONCLUSIONES de la Tesis
Adems de proponer una estrategia para elicitar
y gestionar los RNFs desde el inicio del
proceso de desarrollo de software, se propone
la generacin de una visin no funcional de
modelado, la cual muestra el ciclo evolutivo de
los RNFs, tema poco abordado por la literatura
convencional.
10
Conclusiones
Hace falta proponer mtodos apropiados que
permitan detectar desde la interaccin con el
usuario, cules son los RNFs que debern estar
asociados a determinados smbolos al momento
del modelado.
La Tesis de Cisneyros es un avance en este
sentido
Apuntes Unidad V
Kotonya, G. andSommerville, I. Requirements
Engineering: ProcessesandTechniques. J ohn Wiley&
SonsEds. 1998.
Apunte 5.1 - Captulo 8 Non-Functional
Requirements
Hay, D.C. RequirementsAnalysis: FromBusiness Viewto
Architecture. Prentice Hall Eds. 2003.
Apunte 5.2 Captulo 2 IdentifyNon-Functional
Requirements

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