Requerimientos y arquitectura
Humberto Cervantes Maceda
2
Contenido
Introducción
Tipos de requerimientos
Objetivos de negocio y atributos de calidad Comprendiendo los atributos de calidad
Definición de requerimientos
Definición
Los requerimientos son una especificación de lo que debe ser implementado. Son descripciones acerca de cómo
debe comportarse el sistema o bien acerca de una propiedad o atributo del sistema. Pueden ser una restricción en el proceso de desarrollo del sistema.
4
Papel crítico de los requerimientos
Frederick Brooks describe en su ensayo clásico de 1987 "No Silver Bullet: Essence and Accidents of Software Engineering":
La parte más difícil de construir un sistema de software es decidir con exactitud qué construir. Ninguna otra parte del trabajo conceptual es tán difícil como establecer los
requerimientos detallados que incluyen las interfaces con la gente, con máquinas o con otros sistemas de software.
Ninguna otra parte tiene tanto impacto negativo en el
sistema resultante si no se hace correctamente. Ninguna otra parte es más difícil de corregir posteriormente.
Motivante
La mayor consecuencia de los problemas a nivel de los requerimientos es la necesidad de rehacer las cosas
6
Contenido
Introducción
Tipos de requerimientos
Objetivos de negocio y atributos de calidad Comprendiendo los atributos de calidad
Categorías de requerimientos
Negocio
Usuario
Función
8
Categorías de requerimientos
Negocio
Usuario
Función
Requerimientos funcionales
La funcionalidad es la habilidad del sistema de realizar el trabajo para el cual fue concebido
Los requerimientos funcionales capturan los
comportamientos que se espera realice el sistema Se dividen en varias categorías
Requerimientos de negocio Requerimientos de usuario
Requerimientos funcionales detallados
10
Requerimientos de negocio
Qué son?
Este tipo de requerimientos representan objetivos de alto nivel de la organización o cliente que solicita un sistema.
Están fuera de la frontera de un sistema específico.
Describen por qué la organización está implementando el sistema, es decir los objetivos que la organización busca alcanzar.
Estos requerimientos típicamente se almacenan en el documento de visión y alcance del proyecto.
Ejemplos
La organización busca automatizar todo su proceso de administración de almacén
La organización desea aumentar las ventas del sistema en x% para fines del año
Requerimientos de usuario
Qué son?
Los requerimientos de usuario describen objetivos o tareas que los usuarios deben poder realizar con el producto
Se representan mediante casos de uso o descripciones de escenarios
Documento de casos de uso
Los requerimientos de usuario describen lo que el usuario podrá hacer con el sistema
Ej. “Hacer una reservación”
12
Reqs. Usuario y Reqs. Negocio
Los requerimientos de usuario se derivan de los requerimientos de negocio
Necesidad -> Prioridad -> Características (Visión OpenUP)
La disciplina de Modelado de Negocios de RUP tiene, entre otros propósitos, de derivar
requerimientos de software para soportar la organización
Casos de uso
System Gestor E2 Monitorear nodos
E1 Administrar nodos
A3 Administrar alarmas
Security Administrator
Usuario
A4 Administrar Usuarios
Red
Comportamientos del sistema vistos desde la perspectiva de los actores
14
Documentación
de casos de uso
Requerimientos funcionales detallados
Qué son?
Los requerimientos funcionales especifican la
funcionalidad del sistema que los desarrolladores deben construir en el producto para permitir que los usuarios realicen sus tareas y que, por ende, satisfagan los
requerimientos de negocio.
Describen lo que los desarrolladores deben implementar
Son descritos usando el verbo “debe”
“El sistema debe enviar un correo para confirmar la reservación al usuario”
¿ Se deben documentar junto a los casos de uso ?
16
Requerimientos de sistema
Los requerimientos de sistema describen
requerimientos de alto nivel para un producto que contiene varios sub-sistemas (es decir un sistema).
Un sistema puede estar conformado únicamente por sub-sistemas de software o también de hardware.
En algunos casos, ciertas funciones del sistema pueden estar asignadas a personas (Workflow Mangemenent Systems)
Categorías de requerimientos
Negocio
Usuario
Función
18
Requerimientos no-funcionales
Los requerimientos no-funcionales especifican criterios que pueden ser usados para juzgar la operación de un sistema. No representan
comportamientos específicos.
Se dividen en varias categorías
Reglas de negocio Atributos de calidad Interfaces externas Restricciones
Reglas de negocio
Toda organización opera de acuerdo a un conjunto extensivo de políticas corporativas, leyes y
estándares industriales.
Industrias tales como la bancaria, aeronáutica y médicas deben cumplir con grandes cantidades de reglas.
Todas estas reglas se conocen de forma colectiva como
“reglas de negocio”
Una regla de negocio es una frase que define o limita algún aspecto del negocio.
La intención de estas reglas es consolidar la estructura del negocio o controlar (o influenciar) el comportamiento del negocio.
20
Tipos de reglas de negocio
Existen varios tipos de reglas de negocio
Hechos: son cosas verdaderas acerca del negocio
“Cada contenedor químico tiene un código de barras único”
Restricciones: limitan las acciones que el sistema o sus usuarios pueden realizar
“El contrato de un cliente menor de edad debe ser firmado por uno de sus padres”
Eventos: una regla que dispara una actividad ante condiciones específicas
“5 días antes de la fecha de caducidad, los alimentos deben ser retirados de los estantes”
Interfaces externas y restricciones
Las interfaces externas describen conexiones entre el sistema y su entorno
“El sistema obtendrá datos del sistema de resonancia a partir de una conexión TCP/IP de acuerdo al protocolo DICOM”
Restricciones
Las restricciones de diseño e implementación limitan de forma legítima las opciones para los desarrolladores
“La base de datos debe ser MySql”
El sistema deberá estar escrito en lenguaje Java
22
Atributos de calidad
Los atributos de calidad características que
permiten verificar y medir el grado de satisfacción de los usuarios y/o diseñadores con respecto al
Sistema
Son métricas relativas a la calidad adicionales a la cantidad de defectos del sistema
Existen distintas categorías de atributos de calidad
Relacionados con la ejecución del sistema Relacionados con el desarrollo
Ejemplos:
Disponibilidad, Desempeño, Usabilidad, Seguridad, Modificabilidad y Facilidad de prueba entre otros.
Artefactos de documentación
Negocio
Usuario
Función
24
Contenido
Introducción
Tipos de requerimientos
Objetivos de negocio y atributos de calidad Comprendiendo los atributos de calidad
Un caso típico...
Servicio de aduanas australiano
Necesidad de actualizar sistema legado de dos decadas que maneja cargamentos aereos y navales
Después de deliberar se optó por una solución construida alrededor de servicios web XML
Envolver elementos legados detras de servicios Abrir el sistema a clientes
En 2005, el sistema se pone a prueba y el tiempo de respuesta va en caida libre hasta que el sistema
deja de responder
Al abrir el sistema al mundo a través de servicios
26
Un caso típico...
¿ Qué sucedió ?
El sistema legado no era accesible desde fuera, lo cual limitaba el numero de transacciones procesadas
Al abrir el sistema al mundo a través de servicios web, la carga del sistema legado excedió la capacidad
La lección es que no se debe considerar
arquitecturas ofrecidas por las tecnologías más recientes como apropiadas para un sistema
particular
Las arquitecturas del sistema son distintas de las tecnologías de implementación
Frecuentemente, la tecnología de moda influencía las decisiones de diseño, en vez de que lo hagan los criterios que realmente impactan a la organización
Objetivos de negocio y atributos de calidad
Influencia de objetivos de negocio
Los objetivos de negocio pueden impactar
fuertemente a la arquitectura de un sistema sin afectar su funcionalidad
Ejemplo: Sistema de admin de dispositivos en red
28
Influencia de objetivos de negocio
Los objetivos de negocio pueden impactar
fuertemente a la arquitectura de un sistema sin afectar su funcionalidad
Ejemplo: Sistema de admin de dispositivos en red
Soporte de dispositivos heterogeneos
Influencia de objetivos de negocio
Los objetivos de negocio pueden impactar
fuertemente a la arquitectura de un sistema sin afectar su funcionalidad
Ejemplo: Sistema de admin de dispositivos en red
30
Influencia de objetivos de negocio
Los objetivos de negocio pueden impactar
fuertemente a la arquitectura de un sistema sin afectar su funcionalidad
Ejemplo: Sistema de admin de dispositivos en red
Adaptación a distintos mercados
Relación con atributos de calidad
Los objetivos de negocio corresponden a atributos de calidad que el sistema debe exhibir
Modificabilidad Escalabilidad Usabilidad Desempeño Etc...
La arquitectura de un sistema soporta los objetivos de negocio de la organización que lo produce.
Estos objetivos se traducen a atributos de calidad
32
Contenido
Introducción
Tipos de requerimientos
Objetivos de negocio y atributos de calidad Comprendiendo los atributos de calidad
Funcionalidad y arquitectura
La funcionalidad y los atributos de calidad son ortogonales
El tipo de funcionalidad del sistema no dicta directamente el nivel de seguridad, desempeño o usabilidad
La funcionalidad es en general independiente de la estructuración del sistema
34
Clases de atributos de calidad
Existen varias clases de atributos de calidad
Cualidades del sistema: disponibilidad, modificabilidad, desempeño, seguridad, facilidad de prueba, usabilidad Cualidades del negocio: por ejemplo “time to market”
Cualidades de la arquitectura que afectan otros atributos de calidad
Atributos de calidad del sistema
Se han venido estudiando desde los 70's, sin embargo hasta hace poco
Las definiciones provistas de atributos de calidad no son operativas.
No tiene mucho sentido decir que un sistema es
“modificable” ya que todo sistema es modificable con respecto a un tipo de cambios y no modificable con respecto a otros
Mucha discusión se ha dado con respecto a que cualidad pertenece un aspecto
Por ejemplo: fallo es disponibilidad, seguridad o usabilidad?
Diversas comunidades especializadas han desarrollado sus propios vocabularios
Estos problemas se resuelven usando escenarios
36
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Fuente de estímulo
Estímulo
Entorno
Respuesta
Medida de respuesta Artefacto
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Fuente de estimulo. Es una entidad (humano,
Fuente de estímulo
Estímulo
Artefacto
Respuesta
Entorno Medida de
respuesta
38
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Estímulo. Es una condición que necesita ser considerada cuando llega al sistema.
Fuente de estímulo
Estímulo
Artefacto
Respuesta
Entorno Medida de
respuesta
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Entorno. El estímulo ocurre dentro de ciertas
Fuente de estímulo
Estímulo
Artefacto
Respuesta
Entorno Medida de
respuesta
40
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Artefacto. Algún artefacto es estimulado. Esto puede ser todo el sistema o bien partes de él.
Fuente de estímulo
Estímulo
Artefacto
Respuesta
Entorno Medida de
respuesta
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Respuesta. La respuesta es la actividad que se realiza
Fuente de estímulo
Estímulo
Artefacto
Respuesta
Entorno Medida de
respuesta
42
Escenarios de atributos de calidad
Un escenario de atributo de calidad es un
requerimiento específico a un atributo de calidad compuesto de 6 partes
Medida de respuesta. Cuando la respuesta ocurre debe poder ser medida de alguna manera para que el requerimiento pueda ser probado.
Fuente de estímulo
Estímulo
Artefacto
Respuesta
Entorno Medida de
respuesta
Ejemplos de escenarios
Disponibilidad
“Un mensaje externo no anticipado es recibido por un proceso durante un momento de operación normal del sistema. El proceso informa al operador de la recepción del mensaje y continúa operando sin interrupción”
Fuente:
Estimulo:
Mensaje no
anticipado Entorno:
Operación
Respuesta:
Informar al operador
y seguir Medición:
Sin Artefacto:
Proceso
44
Ejemplos de escenarios (2)
Modificabilidad
“Un desarrollador desea cambiar la interfaz de usuario para cambiar el fondo de la pantalla al color azul. El cambio se hace al código en tiempo de diseño. Tomará menos de tres horas el realizar y probar el cambio y no aparecerán efectos secundarios en el comportamiento.”
Fuente:
Desarrollador
Estimulo:
Desea
cambiar la
UI Entorno:
En tiempo de diseño
Respuesta:
Modificación realizada sin efectos
secundarios
Medición:
Menos de 3 horas
Artefacto:
Código
Escenarios generales y concretos
Es necesario hacer una distinción entre escenarios generales de atributos de calidad y escenarios
concretos de atributos de calidad Escenarios generales
Independientes del sistema
Escenarios concretos
Específicos al sistema
A continuación se presentan caracterizaciones de atributos como colección de escenarios generales
Para traducir la caracterización del atributo hacia
requerimientos de un sistema específico, los escenarios generales tienen que volverse específicos