0% encontró este documento útil (0 votos)
331 vistas8 páginas

Requerimientos de Software

Este documento presenta una introducción a los requerimientos dentro del desarrollo de software. Explica que los requerimientos definen lo que debe implementarse en un sistema y son cruciales para el éxito de un proyecto. También describe los diferentes niveles de detalle de los requerimientos, como los requerimientos de negocio, de usuario y del sistema, así como los tipos funcionales y no funcionales. Además, resalta la importancia de que los requerimientos sean completos, consistentes y modificables.

Cargado por

Kevin Sosa
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
331 vistas8 páginas

Requerimientos de Software

Este documento presenta una introducción a los requerimientos dentro del desarrollo de software. Explica que los requerimientos definen lo que debe implementarse en un sistema y son cruciales para el éxito de un proyecto. También describe los diferentes niveles de detalle de los requerimientos, como los requerimientos de negocio, de usuario y del sistema, así como los tipos funcionales y no funcionales. Además, resalta la importancia de que los requerimientos sean completos, consistentes y modificables.

Cargado por

Kevin Sosa
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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.
Ing. Antonio Nicolás Camacho † Las habilidades de la Ingeniería de requerimientos.
Ing. Miguel E. Torres MSc.

Pontificia Universidad Javeriana – Facultad de Ingeniería


Departamento de Ingeniería de Sistemas

En La Actualidad ¿Cuál Es El Problema?

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

„ Retrasos
„ Problemas de Calidad † La incapacidad de manejar el cambio
„ Sobrecostos
„ CAMBIO!!!! † Afán por comenzar el “trabajo en serio!!”

¿Cuál Es La Solución? ¿Qué Es Un Requerimiento?


Según el Glosario Estándar de la Terminología de la
Ingeniería de Software de la IEEE(1997), un requerimiento
¿Cómo registrar lo que un nuevo producto de software es:
requiere? No es fácil manejar su ciclo de vida ya que es
intangible… † (1) Una condición o capacidad que un usuario necesita
para resolver un problema o alcanzar un objetivo.
“Los requerimientos son una especificaión de lo que
debe ser implementado. Estos son descripciones de † (2) Una capacidad o condición que debe poseer el sistema
cómo el sistema se debe comportar, de las propiedades o los componentes del sistema para satisfacer un contrato,
estándar, especificación, u otro documento formalmente
y atributos del mismo. Deben ser una restricción del
impuesto.
proceso de desarrollo del sistema” 1
† (3) Una representación documentada de una condición o
capacidad documentada como las descritas en (1) y (2).

1 Sommerville and Sawyer 1997

1
¿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 con
† “Un requerimiento puede ser algo que el producto debe hacer o respecto al sistema o producto.
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 debería producto para permitir al usuario realizar sus tareas y satisfacer
comportarse, o de las propiedades o atributos de un sistema. los Requerimientos del Negocio.
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 funciones del
desarrollo (Normalmente restricciones del
sistema. dominio, funcionales como no funcionales). Ej:
† Proceso de pruebas
† Requerimientos No Funcionales: Definen los atributos que † Interface
le indican al sistema como realizar su trabajo (eficiencia, † Lugar donde se debe realizar la implementación
hardware, software, interfaces, usabilidad, etc.). Es el como,
cuando y cuanto del que.
† Hardware
† Restricciones: tipo de maquina, 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 (Stockholder’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 subsistema
„ De Diseño de la aplicación

2
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
conflicto con otros) † Completa
† Necesario
† No Repetido † Consistente
† Priorizable
† No Ambiguo † Puede Seguirse † Modificable.
(Traceability) † Trazable - Fácil de Seguir
† Verificable
† Localizado (en un
† Escrito en forma de
componente o elemento
“Debe”
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 contenido Knowledge) la Ingeniería de Requerimientos se
„ Falta de organización define en un modelo de cuatro fases. Además,
hay una fase que se realiza transversal a través
de todo el proceso que es la Administración de
Hay ramas de la Ingeniería de Software cuyo objetivo es
Los Requerimientos.
el llevar un proceso que permita encontrar y manejar
esas necesidades que definen un sistema.

Actividades De La Ingeniería De
Ingeniería De Requerimientos Requerimientos
Objetivo: Definir el propósito de un sistema † Identificación de Stakeholders
propuesto y esbozar su comportamiento † Recolección y Descubrimiento de los
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 (refinamiento) † Analizar y Modelar requerimientos:
† Mantenimiento Representar el mundo real como descripción
† Reingeniería – Ingeniería en Reversa
abstracta de los requerimientos.

3
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
Negociaciones
Documentación Validación
requerimientos para el usuario final)
„ Partición (hardware, software, proceso, etc.)
„ Localización por subsistemas
† Pruebas y Verificación Necesidades de Usuario
Documento de
Dominio de la Información
† Administración de los requerimientos: Planeamiento, Requerimientos Requerimientos
seguimiento, evaluación del impacto de cambios. Información Existente que se
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
Ingeniería de Requerimientos requerimientos que busca encontrar formas sistemáticas
de descubrir, organizar y documentar los requerimientos.

† En este proceso se busca establecer y mantener el


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

„ 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

4
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
Idea
Problema Refinamiento de † El entendimiento común de los requerimientos entre las
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

Habilidades De La Ingeniería De
Problemas Más Frecuentes
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 costos desarrollo, administración, etc.)
de mantenimiento o con una gran frecuencia
de cambios.
† Costos.

5
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 tener en cuenta los siguientes conceptos
‡ Riesgo
„ 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-funcionales
† Administrar el cambio de los requerimientos: „ 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

6
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 proyectos
„ Capturar las razones del cambio
hay que:
„ Reducir el Riesgo
„ Estandarizar
‡¿Por qué cambió? „ Medir
‡¿Qué cambió? „ Hacer uso de herramientas
‡Cuando

‡Bajo que autorización

Requerimientos Lectores De Requerimientos


Definición/Especificación
Gerencia de Cliente
† Definición de Requerimientos
Definición de Usuarios Finales del Sistema
„ Una declaración en un Lenguaje Natural incluye los Ingenieros de Clientes
Requerimientos
diagramas de los servicios del sistema y sus límites Gerencia de Contratistas
operacionales. Escrito para clientes. Arquitectos del Sistema
† Especificación de Requerimientos
„ Un documento estructurado con descripción o detalle de los
Usuarios Finales del Sistema
servicios del sistema. Escrito como un contrato entre el Requerimientos
Ingenieros de Cliente
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 para
Especificación de (Quizá) Ingenieros de Clientes
desarrolladores.
Software Arquitectos del Sistema
Desarrolladores de Software

7
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.

También podría gustarte