You are on page 1of 8

Agenda

Requerimientos dentro Definir el concepto de requerimiento.


del Desarrollo de Explicación de los diferentes niveles de detalle de
requerimientos que se necesiten.
Software: Ingeniería y Introducción a la Noción de Ingeniería de
Requerimientos.
Administración Explicar porque los Requerimientos se involucran
durante el tiempo de vida de un sistema.
Las habilidades de la Ingeniería de requerimientos.

En La Actualidad

La dependencia de la economía global en el software


ha generado una carrera en el mejoramiento de las
técnicas de desarrollo de software. ¿Cuál Es El Problema?
Entonces…¿Por qué se sigue presentando fracaso en
los proyectos de hoy en día? Los requerimientos son la causa más común por la que
fallan los proyectos de software [Reporte 94-00 de
Los proyectos están plagados de:
Standish Group’s CHAOS]
Retrasos
Problemas de El cambio, la incomprensión e inexactitud en los
Calidad Sobrecostos requerimientos son las causas más comunes por las
CAMBIO!!!! que falla un proyecto.

La incapacidad de manejar el cambio

Afán por comenzar el “trabajo en serio!!”

¿Cuál Es La Solución?

¿Cómo registrar lo que un nuevo producto de software


requiere? No es fácil manejar su ciclo de vida ya que es
¿Qué Es Un Requerimiento?
intangible…
Según el Glosario Estándar de la Terminología de la
Ingeniería de Software de la IEEE(1997), un
“Los requerimientos son una especificaión de lo que requerimiento es:
debe ser implementado. Estos son descripciones de
cómo el sistema se debe comportar, de las propiedades (1) Una condición o capacidad que un usuario necesita
y atributos del mismo. Deben ser una restricción del para resolver un problema o alcanzar un objetivo.
1
proceso de desarrollo del sistema”
(2) Una capacidad o condición que debe poseer el
sistema o los componentes del sistema para satisfacer
un contrato, estándar, especificación, u otro documento
1
formalmente impuesto.
Sommerville and Sawyer 1997
(3) Una representación documentada de una condición o
capacidad documentada como las descritas en (1) y (2).
¿Qué Es Un Requerimiento? Niveles De Descripción De Los
Requerimientos
Otras Definiciones… Requerimientos de Negocio: Representan a gran nivel los
objetivos de la organización y/o las solicitudes del cliente
“Un requerimiento puede ser algo que el producto debe hacer con respecto al sistema o producto.
o una cualidad que el producto debe tener. Un requerimiento
existe ya sea porque el tipo de producto demanda ciertas Requerimientos de Usuarios: Describen las tareas de los
funciones o cualidades o porque el cliente quiere que ese
usuarios que deben poder ser realizadas con el producto.
requerimiento sea parte del producto final”.
Requerimientos del Sistema: Definen la funcionalidad del
“Requerimiento es una especificación de que debería ser
software que los desarrolladores deben construir dentro del
implementado. Son descripciones de cómo el sistema
producto para permitir al usuario realizar sus tareas y
debería comportarse, o de las propiedades o atributos de un
satisfacer los Requerimientos del Negocio.
sistema. También pueden ser una limitación en el proceso
de desarrollo del sistema.”

Tipos De Requerimientos de Sistema Tipos De Requerimientos


de Sistema
Restricciones: Reflejan características del
Software
dominio del sistema o del proceso mismo de
Requerimientos Funcionales: Define que hace el
sistema (describen entradas y salidas), es decir, las
desarrollo (Normalmente restricciones del
funciones del sistema. dominio, funcionales como no funcionales). Ej:
Proceso de pruebas
Requerimientos No Funcionales: Definen los atributos Interface
que le indican al sistema como realizar su trabajo Lugar donde se debe realizar la implementación
(eficiencia, hardware, software, interfaces, usabilidad, etc.).
Es como, cuando y cuanto del que.
Hardware
Restricciones: tipo de máquina, Desempeño,
tiempo, carga, etc.

Otros Tipos de Otros Tipos de


Requerimientos Requerimientos (cont.)
Necesidades del Cliente y Expectativas: Una vez Verificados y Validados:
Del Negocio (Stakeholder’s) Verificados (en diseño)
Del Usuario (user’s) Validados (en implementación)
Cualificados (constraints)
Una vez analizados:
De Diseño
Del Sistema
etcétera
Funcionales
IMPORTANTE: Todos los requerimientos
No funcionales deben estar asociados a un
De Diseño subsistema de la aplicación
Características De Un Buen Características De Una Buena
Requerimientos Especificación De Requerimientos
Un Buen Requerimiento
debe ser:
Completo Necesario Un Buen Especificación de Requerimientos de ser:
Correcto Conciso
Feasible Consistente (No en
Completa
Necesario conflicto con otros)
No Repetido Consistente
Priorizable
Puede Seguirse Modificable.
No Ambiguo
Verificable (Traceability) Trazable - Fácil de Seguir
Localizado (en un
Escrito en forma
componente o
de “Debe”
elemento del sistema)
Identificador único Independiente del Diseño

¿Cómo Llevar A Cabo Una Buena


Documentación De Los Ingeniería De Requerimientos
Requerimientos?
Ciencia y disciplina que se preocupa por
Problemas más Frecuentes: encontrar, establecer y documentar los
Difíciles de Recolectar requerimientos de Software.
Imposibilidad de Rastrear el
cambio Difíciles de Escribir En el SWEBOK (Software Engineering Body of
Demasiada forma, poco Knowledge) la Ingeniería de Requerimientos se
contenido Falta de organización
define en un modelo de cuatro fases. Además,
hay una fase que se realiza transversal a través
Hay ramas de la Ingeniería de Software cuyo objetivo
de todo el proceso que es la Administración de
es el llevar un proceso que permita encontrar y manejar Los Requerimientos.
esas necesidades que definen un sistema.

Actividades De La Ingeniería De
Ingeniería De Requerimientos
Requerimientos
Objetivo: Definir el propósito de un Identificación de Stakeholders
sistema propuesto y esbozar su Recolección y Descubrimiento de los
comportamiento externo. requerimientos: Explorar, adquirir y concretar.
Aplicabilidad: Identificación y clarificación de los
Etapa inicial requerimientos en sentencias simples
Durante el ciclo de vida Analizar y Modelar requerimientos:
(refinamiento) Mantenimiento Representar el mundo real como
Reingeniería – Ingeniería en Reversa descripción abstracta de los requerimientos.
Actividades De La Ingeniería De Proceso De La Ingeniería De
Requerimientos Requerimientos
Especificación de los requerimientos: Descripción
precisa para todos los Stakeholders y formalización.
Priorización
Análisis y
Derivación de requerimientos (requerimientos de diseño o Recolección Documentación Validación
Negociaciones
requerimientos para el usuario final)
Partición (hardware, software, proceso, etc.)
Localización por subsistemas
Pruebas y Verificación Necesidades de Usuario
Documento de
Administración de los requerimientos: Planeamiento, Dominio de la Información Requerimientos Requerimientos
Información Existente que se
seguimiento, evaluación del impacto de cambios.
Regulaciones Pactaron
Validación de los requerimientos: Corrección y
Restricciones Documento del Sistema
viabilidad. Estándares

Estructura De La Ingeniería De Administración De Requerimientos


Requerimientos
Es una ciencia derivada de la ingeniería de requerimientos
Ingeniería de Requerimientos que busca encontrar formas sistemáticas de descubrir,
organizar y documentar los requerimientos.

En este proceso se busca establecer y mantener


Desarrollo Administración el acuerdo entre los involucrados en el sistema.

Rastrear cambios
Mantener acuerdos

Incluye la Planeación del proceso


Recolección Análisis Especificación Verificación

El Plan de Requerimientos El Plan de Requerimientos


(cont.)
Propósito Definiciones
Resumen del Proyecto/Contrato Mecanismos, métodos, técnicas, herramientas
Trasfondo: a usar
Origen del proyecto Identificación de Best-practices
Stakeholders Referencias
Evolución de los requerimientos
Mecanismo
Roles y responsabilidades
Las Actividades - Técnicas Las Actividades - Técnicas

Recolección de Análisis de Especificación de Validación de


Requerimientos: Requerimientos: Requerimientos: Requerimientos:
Entrevistas Sesiones JAD Especificación Validación de
Casos de Uso y/o Priorización de Asistida Modelos
Escenarios Requerimientos Manejo de Plantillas Pruebas de
Observación y Modelos Especificación Aceptación
Análisis Social Análisis de Riesgos y Formal Prototipos
Lluvia de Ideas Costos Meta Lenguajes Inspección de la
Prototipos Especificación

Actividades Del Ciclo De Vida De


Problemas Más Frecuentes
Los Requerimientos
Delineación de
Análisis del Restricciones La definición del alcance del sistema
Problema Refinamiento de El entendimiento común de los requerimientos entre las
Idea Restricciones diferentes comunidades participantes en el desarrollo
Entendimiento de
del sistema
Problema
Entendimiento relativamente completo de Expansión de la Tratar con la naturaleza volátil de los requerimientos
los requerimientos Información Arrastrar requerimientos
Documentos de requerimientos: con pérdidas,
información presentada con ambigüedades o mal
Descripción del Verificación de la interpretadas, representación pobre o inadecuada
Producto Consistencia
Oraciones inestables de los requerimientos
Conciliación
Información obsoleta
Un SRS completo y consistente

Problemas Más Frecuentes Habilidades De La Ingeniería De


Requerimientos
Consecuencias: Debe poseer las siguientes habilidades:
Requerimientos pobres Comunicación (lectura – escritura)
Cancelación del desarrollo del sistema Conocimiento del Negocio
Desarrollo de un sistema que será Conocimiento Técnico (procesos,
insatisfactorio o inaceptable, con altos desarrollo, administración, etc.)
costos de mantenimiento o con una gran
frecuencia de cambios.
Costos.
Habilidades De La Ingeniería De Habilidades De La Ingeniería De
Requerimientos Requerimientos (cont.)
Definir el Sistema:
Analizar el Problema: Tomar Las necesidades y traducirlas a lo que el sistema
Entender los problemas del negocio debe hacer
Identificar usuarios finales Qué constituye un requerimiento
Proponer ideas macroscópicas Formato de documentación
Entender las Necesidades del Usuario: Formalidad del lenguaje
Determinar las fuentes Prioridades y estimaciones
Extraer la información (cómo acceder a la misma) Riesgos técnicos
Entrevistas Alcance
Lluvia de Ideas Administrar el Alcance del Sistema.
Prototipos Administrar el alcance del Proyecto
Cuestionarios Tiempo
Asignar Prioridad Personal
Dinero

Habilidades De La Ingeniería De Conceptos Importantes De Los


Requerimientos (cont.) Requerimientos
Atributos de los Requerimientos
Prioridad Para aplicar estas habilidades hay que
Esfuerzo
Riesgo
tener en cuenta los siguientes conceptos
Refinar la Definición del Sistema:
Descripciones más detalladas Tipos de requerimientos
Verificar que el sistema cumpla con las necesidades de
los usuarios.
Equipos Poli-
Administrar el cambio de los requerimientos: funcionales Trazabilidad
Línea Base Atributos Multi -dimensionales
Rastreo histórico
Determinar dependencias Rastreables Cambio histórico
Mantenimiento de versiones

Tipos De Requerimientos Equipos Interdisciplinarios

Tipo de Requerimiento: Una clase específica


de Requerimientos.
Diseñadores e Aseguramiento
Implementadores de la Calidad
TR Reglas del Negocio, la Visión

Necesidades de usuario, Analistas Requerimientos Técnicos


TR1 TR2 requerimientos del Producto,
Características

Jefe del Director del


TR1.1 TR1.2 TR1.3 Casos de Uso, Procedimientos Producto Proyecto
Trazabilidad Atributos Multidimensionales
Las Características de un Requerimiento están acompañadas
de otras.

TR Atributos No tan Detallados


Req. A Requerimientos del Producto

Requerimientos Detallados R1 R2 R3
Req. B

Documentación Detallados hasta


Diseño Pruebas Procesos finales
de usuarios donde se necesite
Atributos

Historial De Cambios Calidad De Los Requerimientos

Gravar las versiones


Para mejorar la calidad de los
Capturar las razones del cambio
proyectos hay que:
Reducir el Riesgo Estandarizar
¿Por qué Medir
cambió? ¿Qué Hacer uso de herramientas
cambió? Cuando
Bajo que autorización

Requerimientos Lectores De Requerimientos


Definición/Especificación
Gerencia de Cliente Usuarios
Definición de Requerimientos
Definición de Finales del Sistema
Una declaración en un Lenguaje Natural incluye Ingenieros de Clientes
los diagramas de los servicios del sistema y sus Requerimientos
Gerencia de Contratistas
límites operacionales. Escrito para clientes. Arquitectos del Sistema
Especificación de Requerimientos
Un documento estructurado con descripción o detalle de Usuarios Finales del Sistema
los servicios del sistema. Escrito como un contrato entre Requerimientos
Ingenieros de Cliente
el cliente y el contratista. Especificación de
Arquitectos del Sistema
Especificación de Software Desarrolladores de Software
Descripción detallada de software, la cual, puede servir
como una base para diseño o implementación. Escrito
Especificación (Quizá) Ingenieros de Clientes
para desarrolladores. Arquitectos del Sistema
de Software
Desarrolladores de Software
Definiciones Y Especificaciones Productos
Definición de Requerimientos
Documento de especificación de los requerimientos
1. El Software proporcionará significado de representación y acceso a
del software.
archivos externos creados por otras herramientas. Internamente consistente
Especificación de Requerimientos Consistente con documentos prácticas negocio
1.1 El usuario debe proporcionar facilidades para definir el tipo de archivos externos. Correcto y completo (necesidades usuario)
1.2 Cada tipo de archivo externo puede tener una herramienta asociada. La cual, será Claro
aplicada para el archivo.
1.3 Cada tipo de archivo externo será representado como un icono específico mostrado al Base para diseño y pruebas
usuario. Puede ser documento legal
1.4 Las facilidades proporcionadas para la representación del icono en un tipo de archivo
externo será definido por el usuario. Planeación y gestión
1.5 Cuando un usuario selecciona una representación de icono de un archivo externo, el Base para manual de usuario
efecto de la selección es aplicar las herramientas asociadas con el tipo de archivo ex-
terno al archivo representado por la selección del icono.

Referencias (algunas!)
Institute for Electronics and Electrical Engineers. Glosario
Estándar de la Terminología de La Ingeniería de Software. 1997.
Rational Software. Applying Requirements Management With
Use Cases. Rational Software Corporation, 2000.
Sommerville Ian, Sawyer Peter. Requirements Engineering:
A Good Practice Guide. John Wiley. 2000.
Young, Ralph, The Requirements Engineering Handbook,
Artech House, Inc., 2004.
Thayer, Richard, Dorfam, Merlin. Software Requirements
Engineering. IEEE Computer Science Press. 2000.
Wiegers, Karl. Software Requirements. Microsoft Press.
Segunda edición. 2003.

You might also like