Ing. Miguel Torres M.Sc. Ingeniería de Requerimientos

Anuncio
Ing. Miguel Torres M.Sc.
Ingeniería de
Requerimientos
"The Roman bridges of antiquity were very
inefficient structures. By modern standards,
they used too much stone, and as a result, far
too much labor to build. Over the years we
have learned to build bridges more efficiently,
using fewer materials and less labor to
perform the same task.“
Tom Clancy (The Sum of All Fears)
Outline
• Panorama general
• Requerimientos
• Una buena especificación de
Requerimientos
• Ingeniería de Requerimientos
• Buenas prácticas y documentos útiles
En La Actualidad
El Proyecto Chaos
The Standish Group 1995
For purposes of the study, projects were classified into three resolution types:
•
•
•
Resolution Type 1, or project success: The project is completed ontime and on-budget, with all features and functions as initially specified.
Resolution Type 2, or project challenged: The project is completed
and operational but over-budget, over the time estimate, and offers fewer
features and functions than originally specified.
Resolution Type 3, or project impaired: The project is cancelled at
some point during the development cycle.
Overall, the success rate was only 16.2%, while challenged projects
accounted for 52.7%, and impaired (cancelled) for 31.1%.
Factores Según el Proyecto Chaos
Project Success Factors
Project Challenged Factors
1. User Involvement 15.9%
2. Executive Management Support
13.9%
3. Clear Statement of Requirements
13.0%
4. Proper Planning 9.6%
5. Realistic Expectations 8.2%
6. Smaller Project Milestones 7.7%
7. Competent Staff 7.2%
8. Ownership 5.3%
9. Clear Vision & Objectives 2.9%
10. Hard-Working, Focused Staff 2.4%
Other 13.9%
1. Lack of User Input 12.8%
2. Incomplete Requirements &
Specifications 12.3%
3. Changing Requirements &
Specifications 11.8%
4. Lack of Executive Support 7.5%
5. Technology Incompetence 7.0%
6. Lack of Resources 6.4%
7. Unrealistic Expectations 5.9%
8. Unclear Objectives 5.3%
9. Unrealistic Time Frames 4.3%
10. New Technology 3.7%
Other 23.0%
Factores (cont.)
Project Impaired Factors
1. Incomplete Requirements 13.1%
2. Lack of User Involvement 12.4%
3. Lack of Resources 10.6%
4. Unrealistic Expectations 9.9%
5. Lack of Executive Support 9.3%
6. Changing Requirements & Specifications 8.7%
7. Lack of Planning 8.1%
8. Didn't Need It Any Longer 7.5%
9. Lack of IT Management 6.2%
10. Technology Illiteracy 4.3%
Other 9.9%
Dispersión del Error
En otras palabras …
You folks start coding.
I will go to the client and find out what the
requirements are.
¿Cuál Es La Solución?
“Los requerimientos son una especificación de lo
que
debe
ser
implementado.
Estos
son
descripciones de cómo el sistema se debe
comportar, de las propiedades y atributos del
mismo. Deben ser una restricción del proceso de
desarrollo del sistema” 1
Debemos conocer por qué es necesario el sistema !
También deben indicar qué NO hace el sistema!
Son la base para todo el trabajo de desarrollo
posterior!
1
Sommerville and Sawyer 1997

Importancia de los
Requiremientos
Discusión Ingeniería


Discusión Economía


Los defectos son más baratos de remover si se encuentran
en etapas tempranas.
Discusión Empírica


Una buena solución sólo puede ser desarrollada si el
ingeniero tiene un profundo conocimiento del problema.
La inhabilidad de entender y gestionar los requerimientos
son la causa mas frecuente en sobrecostos (tiempo y
recurso).
Discusión Safety

Errores de Safety surgen de requerimientos inadecuados o
malinterpretados.
……
 07/26/09
11
Niveles De Descripción De Los
Requerimientos
 Requerimientos de Negocio: Representan a gran nivel los
objetivos de la organización y/o las solicitudes del cliente con
respecto al sistema o producto.
 Requerimientos de Usuarios: Describen las tareas de los
usuarios que deben poder ser realizadas con el producto.
 Requerimientos del Sistema: Definen la funcionalidad del
software que los desarrolladores deben construir dentro del
producto para permitir al usuario realizar sus tareas y satisfacer
los Requerimientos del Negocio.
Business vs. System
Tipos De Requerimientos de Sistema
 Software
 Requerimientos Funcionales: Define que hace el sistema
(describen entradas y salidas), es decir, las funciones del
sistema.
 Requerimientos No Funcionales: Definen los atributos que
le indican al sistema como realizar su trabajo (eficiencia,
hardware, software, interfaces, usabilidad, etc.). Es el como,
cuando y cuanto del que.
 Hardware
 Restricciones: tipo de máquina, Desempeño, tiempo,
carga, Proceso de pruebas, Interface, Lugar donde se debe
realizar la implementación, etc.
HW vs. SW
Niveles De Descripción De Los
Requerimientos
Algunos Atributos – Req. SW
Ejemplo
Debido a una falla mecánica un piloto de helicóptero no puede
determinar su posición actual. El piloto toma un cartel que
dice “¿Donde Estoy?” y lo pone en la ventana de su
helicóptero y lo muestra a unas personas que se
encuentran en la parte alta de un edificio, ellos le muestran
a su vez un letrero inmenso que dice “Ud. Está en un
Helicóptero”. ¿Cuál es el tipo de problema asociado al
último cartel?
–
–
–
–
Req.
Req.
Req.
Req.
No Funcionales del Sistema
Funcionales del Sistema
Del Negocio
De Usuario
Características De Un Buen Requerimiento
Factible
Características De Una Buena
Especificación De Requerimientos
Una Buena Especificación de
Requerimientos de ser:
•
•
•
•
•
Completa
Consistente
Modificable.
Trazable - Fácil de Seguir
etc.!
Complete
• No requirements or necessary
information should be absent.
• Missing requirements are hard to
spot because they aren't there!
• Focusing on user tasks, rather than
on system functions, can help you to
prevent incompleteness.
Consistent
• Consistent requirements don't conflict with other
requirements of the same type or with higherlevel business, system, or user requirements.
• Disagreements between requirements must be
resolved before development can proceed.
• You might not know which single requirement (if
any) is correct until you do some research.
• Recording the originator of each requirement lets
you know who to talk to if you discover conflicts.
Modifiable
• You must be able to revise the SRS when necessary and to
maintain a history of changes made to each requirement.
• Each requirement must be uniquely labeled and expressed
separately from other requirements so that you can refer to it
unambiguously.
• Each requirement should appear only once in the SRS.
• It's easy to generate inconsistencies by changing only one
instance of a duplicated requirement.
• Consider cross-referencing subsequent instances back to the
original statement instead of duplicating the requirement.
• A table of contents and an index will make the SRS easier to
modify.
• Storing requirements in a database or a commercial requirements
management tool makes them into reusable objects.
Traceable
• A traceable requirement can be linked backward
to its origin and forward to the design
elements and source code that implement it
and to the test cases that verify the
implementation as correct.
• Traceable requirements are uniquely labeled
with persistent identifiers.
Trazabilidad
What for?
•
•
•
•
•
•
To show what results stakeholders
want
To give stakeholders a chance to
say what they want
To represent different viewpoints
To check the design
To measure progress
To accept products against precise
criteria
Requirements, then, are used for
many different reasons by
different people. For example:
• users say and get what they want;
• systems engineers can be sure
they are solving the right
problems;
• test engineers know what to test;
• managers have more confidence
that the project is on track.
Quienes?
RA Role
Work collaboratively with customers,
users, and system architects and
designers to identify the real
requirements.
Work effectively with customers and users
to manage new and changed
requirements so that the project stays
under control. Install a mechanism to
control changes.
Be alert to new technologies that may
help.
Facilitate the project in reusing artifacts
and achieving repeatability.
Assist the project and its customers in
envisioning a growth path from the
first release or version of a product
through a set of staged releases to the
“ultimate system or products.”
Advise the project (and customer) of
methods, techniques, and automated
tools that are available to best support
requirements-related project work and
activities.
Use metrics to measure, track, and control
requirements- related project work
activities and results.
Be able to facilitate discussions and to
mediate conflicts.
Study the domain of the area in which the
system or software is being used.
El Proceso
Ingeniería De Requerimientos
• Ciencia y disciplina que se preocupa por encontrar,
establecer y documentar los requerimientos de Software.
• Requirements Engineering is the branch of systems
engineering concerned with real-world goals for, services
provided by, and constraints on software systems.
• Requirements Engineering is also concerned with the
relationship of these factors to precise specifications of
system behavior and to their evolution over time and across
system families.
Ingeniería De Requerimientos
Recolección
Análisis y
Negociaciones
Necesidades de Usuario
Dominio de la Información
Información Existente
Regulaciones
Restricciones
Estándares
Documentación
Documento de
Requerimientos
Documento del Sistema
Validación
Requerimientos
Pactados
Variabilidad del Proceso
• El proceso de IR varia de una organización
a otra
• Factores
–
–
–
–
Madurez técnica
Cultura Organizacional
Dominio de la Aplicación
…
• Por tanto no hay un proceso ideal de IR
Las Actividades - Técnicas
Recolección de
Requerimientos:
• Entrevistas
• Casos de Uso y/o
Escenarios
• Peeling the Onion
• Observación y Análisis
Social
• Lluvia de Ideas
• Prototipos
Análisis de
Requerimientos:
• Sesiones JAD
• Priorización de
Requerimientos
• Modelos
• Análisis de Riesgos
y Costos
• Análisis de Textos
Las Actividades - Técnicas
Especificación de
Requerimientos:
• Especificación
Asistida
• Manejo de Plantillas
• Especificación Formal
• Meta Lenguajes
Validación de
Requerimientos:
• Validación de
Modelos
• Pruebas de
Aceptación
• Prototipos
• Inspección de la
Especificación
Escribiendo Requerimientos
• Los REQUERIMIENTOS están
orientados al objetivo.
– Objetivo: Un único resultado deseado
Escribir los pasos básicos
• Escenarios. Cada paso puede ser en
efecto un requerimiento y un
subobjetivo
Anatomía de un buen requerimiento
Cada REQUERIMIENTO DE USUARIO debe tener:
• Tipo de usuario que se beneficiara.
• Estado deseado que se desea alcanzar, usualmente
un Objetivo (entidad) con un calificador;
• Mecanismo que permita que se pueda escribir una
prueba del requerimiento.
Ejemplo
• Tipo de Usuario: El Operador Telefónico…
• Tipo de Resultado (Verbo): ... Debe poder observar...
• Objeto: ... detalles de una casa protegida ...
• Calificador : ... Dentro de los primeros 5 segundos en
que realizo la solicitud de consulta.
Plantilla ejemplo
Ejemplo
Mal
Bien
El sistema será lo más fácil de
utilizar posible.
Un usuario experimentado debe
ser capaz de utilizar todas las
funciones del sistema tras un
entrenamiento de 2 horas, tras
el cual no cometerá más de 3
errores diarios en media.
El sistema proporcionará una
respuesta rápida al usuario.
Cuando haya hasta 100
usuarios accediendo
simultáneamente al sistema, su
tiempo de respuesta no será en
ningún momento superior a 2
segundos.
El sistema se recuperará
automáticamente tras producirse
un fallo.
Ante un fallo en el software del
sistema, no se tardará más de 5
minutos en restaurar los datos
del sistema (en un estado válido)
y volver a poner en marcha el
sistema.
Problemas y soluciones al
Estructurar Requerimientos
Problemas y soluciones al
Estructurar Requerimientos
(Cont.)
SI
• Use Frase simples y directas
• Use un vocabulario limitado
• Identifique el tipo de usuario
• Enfóquese en los resultados
• Defina criterios verificables enmarcados en un
criterio de aceptación.
NO
• Evite la ambigüedad
“El mismo subsistema debe poder generar una señal de
alerta/precaución visible o audible para el copiloto o el
navegante."
Cuál subsistema? Es la señal visible o audible o las dos? Es
alerta o precaución o las dos? Es solo para el copiloto o
el navegante o los dos? Si es solo para uno de ellos, cuál
y bajo que condiciones?
• No escriba múltiples requerimientos en uno (y, o
, con, además)
• No diseñe el sistema – No mezcle requerimientos
y diseño
No (cont.)
• No mezcle requerimientos y planes
• No especule, no hay espacio para
deseos
• No exprese posibilidades (podría,
puede, debería…)
Requerimientos son
planeados
Un plan de requerimientos define:
• Como evolucionarán los
requerimientos, y como se ejecutarán
las actividades relacionadas con ellos.
• Facilita la comprensión de las
actividades y esfuerzos.
Plan
•
•
•
•
•
•
•
Propósito del Plan
Contrato / Resumen del Proyecto
Trasfondo
Evolución
Roles y responsabilidades del personal
Definición del Proceso
Mecanismos, métodos, técnicas y
herramientas
• Bibliografía (interna o externa)
• Apéndices
Estructura de un SRS
Ejercicios
Identificando Requerimientos
El siguiente texto corresponde aun definición dada por un
usuario
(a) El Proyecto es para un base de datos que almacenará
información histórica del desempeño de los proyectos
que se realizan en la empresa, (b) permitirá a los
usuarios consultar cual era el cronograma original
propuesto y (c) compararlo con los planes proyectados
actuales, (d) El sistema será fácil de usar para todos los
gerentes, y (e) será accesible desde todas las estaciones
de trabajo de la organización, (f) Será implementado en
Oracle, y (g) debe presentar un nivel de desempeño
aceptable a lo largo de toda la organización.
(h) El sistema producirá un reporte de estado de todos los
proyectos de manera mensual para la alta Gerencia.
(i) La pantalla mostrara gráficos de comportamiento del
estado actual contra el planeado así como predicciones
de cumplimiento, y (j) la fecha mas cercana de
terminación de un proyecto.
(k) El sistema debe funcionar satisfactoriamente para
Diciembre de 2008, y (l) será producido por el
departamento de Sistemas de Información, (m) bajo la
gestión del departamento de Ingeniería de sistemas, (n)
El software correrá en PC’s.
Clasifique las
sentencias (a) a
(n) en los
siguientes tipos:
1 Requerimientos de
Negocio
2 Req. De Usuario
3 Req. De sistema
4 Elementos de
Diseño
5 Planes
6 Trasfondo
7 Detalle Irrelevante
Estructurando Requerimientos
A continuación encontrara una lista de requerimientos (numerados a hasta i). Ud. Debe organizarlos en las secciones
numeradas 1 a 7. Ha y siempre una única respuesta? La estructura propuesta es correcta?
Secciones propuestas para estructurar los requerimientos
1.
2.
3.
4.
5.
6.
7.
Preparación para el vuelo.
Despegue y Aterrizaje.
Vuelo.
Mantenimiento.
Safety.
Desempeño.
Materiales.
Requerimientos
a.
b.
c.
d.
e.
f.
g.
h.
i.
Todos los materiales expuestos externamente deben ser resistentes a la corrosión por agua salada.
(Sección
)
La aeronave debe poder navegar a una velocidad constante de 800 Km/h a 10000 m de altitud. (Sección )
Ninguna falla en un motor debe afectar la operación de ningún otro motor. (Sección )
Personal manipulador de equipaje podrá ingresar un carro estándar de equipaje directamente en la zona de
carga. (Sección )
El piloto debe poder oscurecer las luces de la cabina para el momento del despegue. (Sección )
El piloto debe poder ver el tiempo estimado para el aterrizaje (Sección )
El piloto debe ser alertado en caso de que el tren de aterrizaje no sea completamente desplegado durante la
preparación para el aterrizaje. (Sección )
Ingenieros de mantenimiento deben poder acceder todos los sellos de aceite directamente luego de retirar
las coberturas de los motores. (Sección )
Todos los materiales usados en el compartimiento de los pasajeros deben resistir la ignición bajo calor
aplicado de acuerdo al FAA estándar 123-45. (Sección )
Self Assesment
• Por Karl Wiegers
Verdades Cósmicas (Wiegers)
• If you don't get the requirements right, it doesn't matter
how well you execute the rest of the project.
• Change happens.
• Customer involvement is the most critical contributor to
software quality.
• The customer is not always right, but the customer always
has a point.
• Requirements development is a discovery and invention
process, not just a collection process.
• The first question an analyst should ask about a proposed
new requirement is, "Is this requirement in scope?“
Más Verdades
• The requirements might be vague, but the product will be
specific.
• You're never going to have perfect requirements.
Estándar IEEE 1074
ADMINISTRACIÓN DEL PROYECTO
Inicio, Supervisión, Control, Calidad
PRE- DESARROLLO
Exploración
Asignación del sistema
DESARROLLO
Requerimientos
Análisis
Diseño
Implementación
POS- DESARROLLO
Instalación
Operación & Soporte
Mantenimiento
Retiro
PROCESOS INTEGRALES
Verificación, Validación, Adm. de configuraciones, Documentación, Entrenamiento
Bibliografía
•
Karl E. Wiegers , More About Software Requirements: Thorny Issues and Practical Advice, Microsoft Press,
2006 ISBN:0735622671
•
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.
•
SWEBOK, Software Engineering Body of Knowledge
•
Imágenes tomadas y/o adaptadas de estas fuentes
Descargar