Está en la página 1de 25

Arquitectura de Aplicaciones en

Redes
Ingeniera de Requerimientos

Contenido
Introduccin
Definicin
Clasificacin
Actividades de la Ingenieria de Requerimientos (RE) para Aplicaciones Web
Principios de RE para Aplicaciones Web
Adaptacin de Mtodos RE al desarrollo de Aplicaciones Web

Introduccin
Los requisitos juegan un papel principal en el

desarrollo de aplicaciones web.


La recoleccin iterativa y el refinamiento de
requerimientos son las funciones importantes de un
ingeniero para un cliente.
Una encuesta sobre ms de 8000 proyectos revel que:
El 30% de todos los proyectos fallan antes de terminarse
El 70% del resto de los proyectos no cumplen con las

expectativas de los usuarios.


Los problemas detectados estaban relacionados con los
requerimientos

Definicin
Un requerimiento describe un servicio a ser provedo

por el sistema
IEEE 610.2 define como:
(1) Una condicin o capacidad necesaria por un usuario

para resolver un problema o alcanzar un objetivo.


(2) Una condicin o capacidad que debe ser lograda por
un sistema o componente de sistema para satisfacer un
contrato, estndar, especificacin u otro documento
formalmente impuesto.
(3) Una representacin documentada de una condicin o
capacidad como en (1) o (2)

Clasificacin
Requerimientos funcionales: define las capacidades

del sistema y servicios


Requerimientos no funcionales: describe el nivel de
calidad deseada (Qu tan seguro?)
Constraints: condiciones no negociables que afectan
al proyecto. (presupuesto disponible, fecha de
publicacin, infraestructura de publicacin)

De dnde vienen?
Los objetivos individuales y las expectativas de los

usuarios, clientes y desarrolladores es el punto de


partida.
Entender y conciliar los objetos conflictivos,
expectativas y agendas lo ms temprano posible. Ej:
entre funcionalidades y presupuesto; funcionalidades,
cronograma del proyecto y calidad deseada.
Desarrollar una visin compartida con los usuarios

Actividades
Recoleccin de requerimientos y negociacin
Proceso de comunicacin e intercambio de conocimientos con

los usuarios.
Mtodos y herramientas colaborativas: mtodos basados en
escenarios, procesos de decisin multicriterios, tcnicas de
facilitacin, entrevistas o anlisis de documentos.

Documentacin de requerimientos
Los acuerdos deben ser descriptos en un documento de

requerimientos en un grado de detalle y formalidad de


acuerdo al contexto del proyecto.
El grado de detalle depende de los riesgos del proyecto y la
experiencia y habilidades de los lectores esperados.
Mtodos: Historias o Casos de Usos

Actividades (cont)
Verificacin y validacin de los requisitos
Hemos especificado las cosas correctamente?
Hemos especificado las cosas correctas?
Mtodos: revisiones, inspecciones o prototipos, recoleccin

online del feedback del usuario.

Administracin de los requerimientos


Los requerimientos estn sujetos a cambios frecuentes.
Mtodos y herramientas contemplan la integracin de nuevos

requerimientos y cambios de los existentes. Adems, ayudan a


evaluar el impacto de los cambios manejando la
interdependencia entre requerimientos.

Actividades Mtodos de
Documentacin de Requerimientos
Automated Teller Machine (ATM) Interface del usuario

Actividades
Automated Teller Machine (ATM)
Diagrama de Caso de Uso: muestra las interacciones que el usuario tiene con el
sistema sin proveer detalles. Es acompaado de un texto informal que describe el caso
de uso en forma ms detallada.

Principios de RE para aplicaciones


web
Lidia con el riesgo, incertidumbre, volatilidad de

requerimientos y constraints, inexperiencia de


desarrolladores.
Una visin orientada al riesgo.
Estos principios derivan de los invariantes del modelo
espiral, una orientacin al riesgo y un modelo de ciclo
de vida iterativo.
Entender el contexto del sistema
Una aplicacin web no se debe desarrollar como

soluciones tcnicas aisladas, sta debe soportar los


objetivos de negocio del usuario.

Principios de RE para aplicaciones


web
Involucrando a los usuarios
Activa y directa participacin cooperando en identificar y
negociando requerimientos en cada fase del proyecto.
Los administradores de proyectos deben evitar
situaciones donde participantes individuales ganen a
expensas de otros.
Estas caracterstias nos lleva a:

Identificar usuarios efectivos


Entender los objetivos y expectativas de los usuarios
Negociacin de las expectativas, experiencias y conocimientos.

Definicin iterativa de requerimientos


Con plazos fijados, un desarrollo iterativo permite
seleccionar requisitos de alto valor que necesitan ser
implementados primero.

Principios de RE para aplicaciones


web
Enfocndose en la arquitectura del sistema
La tecnologa existente impacta en los requerimientos de las
aplicaciones web
Redefinir concurrentemente requerimientos y la arquitectura
del sistema en un esquema iterativo con el incremento del
nivel de detalle.
Orientacin al riesgo
Los mayores riesgos del proyecto son los problemas no
detectados, puntos sin resolver y los conflictos entre
requerimientos.
La mitigacin del riesgo debe realizarse lo antes posible. Ej:
prototipos, versiones tempranas para recolectar el feedback de
los usuarios, temprana incorporacin de componentes
externos para evitar problemas tardos y severos de integracin

Adaptar Mtodos RE al desarrollo


de aplicaciones Web
Se debe evitar Un mtodo para todo
Los mtodos RE deben ser adaptados a la situacin del

proyecto especfico.

Adaptar Mtodos RE al desarrollo


de aplicaciones Web (cont)
Qu tipos de requerimientos son importantes para

una aplicacin Web?


Tipos de Requerimientos
Requerimientos funcionales: describe capacidades y

que servicios del sistema debera ofrecer.

Mtodos: Escenarios de casos de uso y especificaciones


formales
Ej: El usuario puede seleccionar un cono para ver los artculos
del carrito de compra en cualquier momento.

Requerimientos no funcionales: describe las

propiedades de las capacidades y el nivel deseado de


servicio.

Ej: La aplicacin web debera permitir al menos 2500 usuarios


concurrentes.

Adaptar Mtodos RE al desarrollo


de aplicaciones Web (cont)
Otros requerimientos se refieren a aserciones del

proyecto e interfaces del sistema.


Requerimientos de contenido: especifica el contenido

que la aplicacin web debera representar.

Mtodo: Descrito en la forma de glosario.

Requerimientos del ambiente del sistema: describe

cmo una aplicacin web se encaja en el ambiente


objetivo, y cmo interacta con los componentes
externos como sistemas legacy o hardwares especiales.

Ej: si la aplicacin web supone disponible en el lugar que se


encuentre el cliente, entonces los requerimientos del ambiente se
deben especificar en detalle.

Adaptar Mtodos ER al desarrollo


de aplicaciones Web (cont)
Requerimientos de calidad: describe el nivel de calidad de

servicios y capacidades y especifica propiedades importantes del


sistema tales como seguridad, rendimiento y usabilidad.

ISO/IEC, estndar 9126 define 6 caractersticas de calidad:

Funcionalidad: funciones que cumplen con las propiedades definidas


Confiabilidad: la habilidad de un programa para mantener su nivel de
rendimiento ante condiciones espedficas en un periodo de tiempo
definido. Ej:: tollerancia a fallas, madurez, recuperabilidad.
Usabilidad: describe el esfuerzo requerido para utilizar un programa, y la
evaluacin individual de un grupo definido de usuario.
Eficiencia: describe el ratio entre el nivel de rendimiento de un programa
y los recursos que utiliza bajo condiciones especficas. Ej: comportamiento
del tiempo y comportamiento de los recursos.
Capacidad de Mantenimiento: describe el esfuerzo requerido para
implementar cambios definidos en un programa. Ej: capacidad de anlisis
y realizacin de ajustes, estabilidad, posibilidad de pruebas
Portabilidad: describe la posibilidad de un software para moverse de un
ambiente a otro. Ej: adaptabilidad, conformidad, reemplazabilidad.

Adaptar Mtodos ER al desarrollo


de aplicaciones Web (cont)
Requerimientos de interface del usuario: auto explicado y

guia intuitiva de los usuarios es crtico para la aceptacin de


las aplicaciones web. La estructura de navegacin(definido en
el proceso de modelamiento) y la interface del usuario (en la
definicin de requisitos)

Mtodo: prototipos

Requerimientos de evolucin: los productos de softwares

estn sujetos a evolucin y mejoras. Ej: requerimientos de


calidad solicitando 5000 usuarios concurrentes adicionales en
2 aos debe ser considerado definiendo sistemas escalables.
Aserciones del proyecto: No son negociables con los
usuarios e incluyen presupuesto y cronograma, limitaciones
tcnicas, estndares, tecnologa de desarrollo, reglas de puesta
a produccin, aspectos de mantenimiento, aserciones
operacionales, aspectos legales o culturales que afectan al
proyecto.

Adaptar Mtodos ER al desarrollo


de aplicaciones Web (cont)
Cmo deberan ser descriptos y documentados los

requerimientos de una aplicacin web?


Cul es el nivel adecuado de detalle y formalidad?
Notaciones:
Historias: son descripciones coloquiales de propiedades

deseadas. Ej: historias del usuario de Programacin


Extrema:

El usuario controla los productos del carrito de compras. La


entrada es validada tan pronto el usuario haga click sobre el
botn <Continuar>. Si no se encuentra error, entonces la
orden ser aceptada y un e-mail de confirmacin ser enviada
al usuario.

Requisitos detallados: Especificaciones en lenguaje

natural. Cada requerimiento tiene un identificador


nico.

Adaptar Mtodos ER al desarrollo


de aplicaciones Web (cont)
Notaciones:
Especificaciones formateadas: Utiliza una definicin de
sintaxis exacta, pero permite descripciones en lenguaje natural
dentro de este marco.

Ej: descripciones de casos de uso en UML.

Especificaciones formales: Escritos en lenguajes que

utilizan una sintaxis formalmente definida y semntica. Ej:


lenguaje Z. Normalmente no utilizado para aplicaciones web
Conveniencia: Una exactitud baja a media ser suficiente
para especificar los requerimientos de una aplicacin Web y
una especificacin formal no es requerida normalmente. Los
requerimientos deben ser entendidos por no expertos. Las
descripciones informales y semi-formal son apropiadas para
aplicaciones Web. Ej: historias, lista de requirimientos y
especificaciones formateadas.

Adaptar Mtodos ER al desarrollo


de aplicaciones Web (cont)
Desbera ser considerado el uso de herramientas?
Cules herramientas son adecuadas para las

necesidades de un proyecto particular?


Herramientas:
Obtencin de los requisitos: Enfasis en la negociacin

de requerimientos en la ingenieria de la web.

Ej: EasyWinWin define una serie de un proceso de


negociacin. Utiliza tcnicas de facilitacin de grupos que son
proveidas por herramientas colaborativas.
Herramientas DOORS y RTM.
Ej: Revisiones y expansin de tpicos de negociacin, lluvia de
ideas electrnicas, converger en condiciones de ganar, capturar
un diccionario de trminos, priorizar condiciones ganadoras,
revisar hechos y axionas, identificar hechos, opciones y
negociar acuerdos.

Adaptar Mtodos ER al desarrollo


de aplicaciones Web (cont)
Herramientas:
Validacin de los requisitos: el sistema de Online
feedback puede complementar o incluso reemplazar
mtodos ms costosos, tales como reuniones personales
o entrevistas.

Ej: usuarios de internet invitados a participar de encuestas en la


web para comunicar su satisfaccin con la aplicacin web.

Administracin de los requisitos: permiten administrar

todos los requerimientos recolectados en un proyecto en


un repositorio central. Son importantes para administrar
los cambios y trazabilidad de los requerimientos.
Ej: Revisin de las herramientas en http://www.paperreview.com/tools/rms/read.php
Herramientas: IBM Rational RequisitePro, IRQA 4

Cuestiones de debate

Otros Recursos
Informacin sobre el diseo Orientado a Objeto con UML

www-306.ibm.com/software/rational/uml/
FAQ sobre UML
www.softdocwiz.com/Dictionary.htm
Diccionario de UML
www-

306.ibm.com/software/rational/offerings/design.html
Rumbaugh, J., I. Jacobson and G. Booch. The Unified Modeling

Language Reference Manual. Reading, MA: Addison-Wesley, 1999.

Actividades voluntarias
Actividad 1. Elabore un documento de requisitos para una librera

Online que permita buscar libros y agregarlos en su carrito.


Actividad 2. Gestione sus requisitos con la herramienta

http://www.seecforum.unisa.edu.au/SEECTools.html.