Está en la página 1de 33

Técnicas Fundamentales de Ingeniería de Software

Aspectos Fundamentales del


Levantamiento y Análisis de Requerimientos
Contenido

• Definiciones y Motivación
• Proceso
• Levantamiento de Requerimientos
• Análisis y Especificación
• Consideraciones Prácticas
[Paragon Innovations]
“Es un hecho
“It is widely ampliamente reconocido
acknowledged within the dentro de la industria del
software industry that software que los
software engineering Proyectos de Ingeniería
projects are critically de Software son
vulnerable when sumamente vulnerables
[requirements cuando [los
engineering is] requerimientos de
performed poorly.” ingeniería] se realizaron
mal."
[SWEBOK]
Definiciones y Motivación

• “Un Requerimiento es definido como una


propiedad que debe ser exhibida a fin de
solucionar algún problema del mundo real”
[SWEBOK].

• El costo de hallar defectos más adelante en la


cadena es 50-200 veces mayor [McConnell96].
¿Cuáles conceptos básicos
pueden usarse para clasificar
los Requerimientos de un sistema?
Clasificaciones
Requerimientos

Producto Proceso

Funcionales No Funcionales

Del Sistema Del Software


Proceso

Requerimientos

Levantamiento Análisis Especificación Validación

[SWEBOK]
Proceso Manejo de Requerimientos…

• No es una actividad discreta del inicio del ciclo de vida del


software.

• Identifica los requerimientos como ítems de configuración,


gestionándolos con las mismas prácticas de gestión de
configuración que otros productos del ciclo de vida.

• Debe ser adaptado al contexto del proyecto y la organización


que lo ejecuta.

[SWEBOK]
Fuentes de Requerimientos

• Metas
• Ambiente Operativo
• Conocimiento del
Dominio • Ambiente
Organizacional
• Stakeholders
Fuentes de Requerimientos

Seguridad
Usuarios Clientes

Analistas
de Requerimientos
Mercado
Reguladores

Ingenieros
de Software
No será posible satisfacer perfectamente los
Requerimientos de todo stakeholder, y es
trabajo del Ingeniero de Software negociar
concesiones que sean aceptables a los
principales involucrados y estén dentro de las
restricciones presupuestarias, técnicas,
regulatorias y de otras índoles.

[SWEBOK]
¿Cómo se obtienen los Requerimientos?
Levantamiento de Requerimientos

• Sinónimos:
Captura
Descubrimiento
Adquisición

• Levantar los Requerimientos es una actividad


fundamentalmente humana.
Técnicas de Levantamiento

• Entrevistas
• Reuniones Facilitadas
• Escenarios
• Observación Directa
• Prototipos
¿Qué se hace con los Requerimientos
una vez levantados?
Análisis de Requerimientos

• Detectar y solucionar conflictos entre


requerimientos.

• Descubrir las fronteras del software y cómo debe


interactuar con su ambiente.

• Expandir los Requerimientos del sistema para extraer


los de software.
[SWEBOK]
Actividades de Análisis

Clasificación

Negociación Modelado

Diseño
Arquitectónico
¿Cómo clasificaríamos
los Requerimientos levantados
para su análisis?
Clasificaciones para Análisis

• Funcional/No Funcional • Prioridad

• Directo o Derivado • Alcance

• Producto o Proceso • Volátil o Estable


Modelado Conceptual
Modelado Conceptual

1
Bote Quilla

1
Mástil Vela

Esto no es un bote Esto no es un bote

[Larman04]
El modelado conceptual de Requerimientos
es una herramienta poderosa en la
detección y comunicación de
conflictos, ambigüedades e imprecisiones.
Modelado Conceptual

“Huésped hace check-in”

• Pre-condición : habitación disponible


• Post-condición : habitación ocupada
¿Disponible de
inmediato al
check out próximo
huésped?

Ocupada Disponible

check in

[Luettgen03]
Modelado Conceptual
remodelar

construir destruir
No Disponible

retirar rehabilitar Potencial nuevo


Caso de Uso

check out Desarreglada limpiar

Ocupada Disponible

check in [Luettgen03]
El modelado conceptual es
una parte importante del análisis, pero
no es el único mecanismo de análisis.
Técnicas Especializadas de Análisis
• Métodos formales (ej. lenguaje Z)

• Verificación de modelos

• Demostración automática de teoremas


¿Cómo documentamos y comunicamos
los requerimientos analizados?
Especificación de Requerimientos
• Establece la base de acuerdos entre clientes y contratistas o
suplidores.

• Permite una valoración rigurosa antes de iniciar el diseño y


evita re-trabajo.

• Provee una base realista para estimaciones.

• Permite desarrollar planes de validación y verificación más


productivamente.
[SWEBOK]
Esquemas de Especificación

• Casos de Uso

• Diagramas (modelo de dominio, actividades,


estado, secuencia, clases, roles.)

• Plantillas de Especificación
Plantilla Volere

[www.volere.co.uk/template.htm]
Consideraciones Prácticas
• Naturaleza Iterativa

• Atributos

• Trazabilidad

• Mesurabilidad
[SWEBOK]
Bibliografía
• Software Engineering: A Practitioner Approach –
Roger Pressman
• Managing the Software Process – Watts Humphrey
• Sommerville, Ian. Ingeniería de Software, 7ma
Edición.
• Rational Unified Process
• IEEE
• SWEBOK 2004, 2014

También podría gustarte