• No se han encontrado resultados

Requerimientos del Software

N/A
N/A
Protected

Academic year: 2021

Share "Requerimientos del Software"

Copied!
59
0
0

Texto completo

(1)
(2)

Importancia

► Los errores en la fase de requerimientos son los más

numerosos:

▪ Boehm afirma que el 10% de los errores se producen en la fase de requerimientos.

▪ Estudios más recientes afirman que entre el 44% y el 80% de los errores proceden de IR.

► El costo crece exponencialmente con el retraso en

subsanarlo:

▪ Boehm afirma que la reparación de un error en la fase de codificación cuesta entre 5 y 10 veces más.

(3)

3

Costo de Correcciones a Errores

(4)
(5)

¿Qué es un requerimiento de

software?

(6)

Concepto de requerimiento

► El IEEE define:

▪ Requisito o Requerimiento como:

►Una condición o necesidad de un usuario para

resolver un problema o alcanzar un objetivo

►Una condición o capacidad que debe estar presente

en un sistema o componentes de sistema para satisfacer un contrato, estándar, especificación u otro documento formal

(7)

7

Requerimientos

► Diferentes niveles de detalle, perspectivas y tipos

de requerimientos ►De usuario ►De sistema ►De negocio ►Técnicos ►Funcionales ►No funcionales

(8)

Requerimientos

► De negocio

▪ Objetivos generales de la organización o los clientes

que solicitan el sistema

▪ ¿Por qué se está implementando el sistema?

(9)

9

Requerimientos

► Del usuario

▪ Objetivos del usuario

▪ Tareas que el usuario debe poder hacer con la

aplicación

► Del sistema

▪ Incluyen elementos de software, hardware e incluso

(10)

Requerimientos funcionales

► Describen la funcionalidad o los servicios del

sistema

► Depende del tipo de software, Los usuarios

esperados y el tipo de sistema en que el software se va a usarse.

► Los requerimientos del usuario funcional pueden

ser declaraciones de muy alto nivel sobre lo que el sistema debería hacer, pero los requerimientos

(11)

Requerimientos no funcionales

► Estos definen las propiedades y restricciones del sistema,

p.Ej.: confiabilidad, tiempo de respuesta y requerimientos de almacenamiento.

► Los requerimientos también pueden ser especificados

asignando sistemas CASE particulares, programando un lenguaje o desarrollando un método.

► Los requerimientos no funcionales pueden ser más críticos

que los funcionales. Si estos no se cumplen, el sistema es inservible.

(12)

Clasificaciones no funcionales

► Requerimientos del producto

▪ Requerimientos que especifican que el producto entregado debe comportarse de una manera determinada. P.Ej.: Velocidad de ejecución, confiabilidad, etc.

► Requerimientos organizacionales

▪ Requerimientos que son una consecuencia de las políticas y procedimientos organizacionales. P.Ej.: estándares de proceso usados, requerimientos de implementación, etc.

► Requerimientos externos

▪ Los requerimientos que surgen de los factores que son externos al sistema y su proceso de desarrollo. P.Ej.: interoperabilidad,

(13)

Tipos de requerimientos no funcionales

Requerimientos de desempeño Requerimientos de espacio Requerimientos de utilidad Requerimientos

eficiencia Requerimientosde fiabilidad Requerimientos de portabilidad interoperabilidadRequerimientos Requerimientoséticos

Requerimiento s legislativos Requerimientos implementación Requerimientos de estándares Requerimiento s de entrega Requerimientos de seguridad Requerimientos privacidad Requerimientos Del producto Requerimientos organizacionale s Requerimiento s externos Requerimientos No funcionales

(14)

Requerimientos

► Funcionales

▪ Especifican la funcionalidad que se debe construir –

Comportamiento

► No funcionales

▪ Estándares, regulaciones

▪ Interfaces externas, desempeño, restricciones de

(15)

15

Características de los requerimientos

Necesario

Conciso

Completo

Consistente

No ambiguo

Verificable

(16)

Dificultades para definir requerimientos

► Los requerimientos no son obvios y vienen de

muchas fuentes

► Son difíciles de expresar en palabras (el lenguaje

es ambiguo).

► Existen muchos tipos de requerimientos y

(17)

17

► La cantidad de requerimientos en un proyecto

puede ser difícil de manejar.

► Los requerimientos están relacionados unos con

otros, y a su vez se relacionan con otras partes del proceso.

► Un requerimiento puede cambiar a lo largo del ciclo

de desarrollo.

(18)

Dificultades para definir requerimientos

► Los Stakeholders no saben lo que realmente

quieren.

► Los Stakeholders expresan los requerimientos con

sus propios términos

► D i f e r e n t e s s t a k e h o l d e r s p u e d e n t e n e r

requerimientos conflictivos

► Los requerimientos cambian durante el proceso de

(19)

Guía para escribir requerimientos

► Definir un formato estándar y usarlo para todos los

requerimientos.

► Distinguir entre los requerimientos deseables y

obligatorios.

► Resaltar el texto para identificar partes importantes

del requerimiento

(20)

Documento de los requerimientos

► El documento de requerimientos es la exposición

oficial de lo que se pide a los desarrolladores del sistema.

► Debería incluir tanto la definición de los

requerimientos del usuario como la especificación de los requerimientos del sistema.

(21)

21

Especificación de Requerimientos


de Software (ERS)

► Constituye la línea de base para el diseño del

producto y la referencia oficial para determinar si el producto de software es lo que el usuario solicito.

► Normalmente se trata de un documento expresado

en lenguaje natural, de modo que funcione como instrumento de comunicación con el cliente y

(22)

► Punto de vista del cliente: es una descripción

comprensiva de lo que el sistema debe resolver

► Punto de vista del administrador del proyecto: es la

base para asignar recursos, estimar preliminarmente esfuerzo - costo y establecer hitos del proyecto.

(23)

23

► Punto de vista del programador: es la “autoridad”

definitiva de lo que debe hacer el sistema, no el diseño.

► Punto de vista de los ingenieros de Pruebas: es la

base para construir planes de pruebas.

(24)

Puntos Clave

► Los requerimientos para un sistema determinan lo

que debe de hacer el sistema y definen las restricciones en el funcionamiento.

► Los requerimientos funcionales son declaraciones

de los servicios que el sistema debe proporcionar o son descripciones de cómo se deben de llevar a cabo algunos cálculos.

(25)

► Los requerimientos no funcionales restringen el

sistema en desarrollo y el proceso de desarrollo que se debe de utilizar.

► Los requerimientos del usuario son para el uso por

la gente relacionada con la utilización del sistema, se deben de redactar con lenguaje natural, tablas y diagramas fáciles de entender.

25

Informática Empresarial, UCR IF 7100 Ingeniería de Software

(26)

► Los requerimientos del sistema se utilizan para

comunicar de forma precisa las funciones que debe de proporcionar el sistema.

► Los documentos de requerimientos de software son

la declaración acordada de los requerimientos del sistema, se debe de organizar para que lo utilicen clientes del sistema y desarrolladores del software.

(27)

¿Qué es ingeniería de

requerimientos?

(28)

Ingeniería de Requerimientos

► El IEEE define:

► Proceso de estudio de las necesidades de los

usuarios con el objeto de llegar a una definición del sistema hw/sw.

► El proceso de estudio y refinamiento de un

(29)

IF 7201 - Gestion de Proyectos de Software I 2006 29

Ingeniería de Requerimientos

► ( Zave )

▪ Rama de la ingeniería del software que trata con el establecimiento de los objetivos,

funciones y restricciones de los sistemas software.

▪ Asimismo, se ocupa de la relación entre estos factores con el objeto de establecer

(30)

Procesos de ingeniería de requerimientos

► Los procesos usados para los Requerimientos varían

ampliamente dependiendo del dominio de la aplicación, de las personas involucradas y de la organización que

desarrolla los requerimientos.

► No obstante, hay varias actividades comunes a todos los

procesos

▪ Obtención de requerimientos;

▪ Análisis de requerimientos;

▪ Validación de requerimientos;

(31)

El proceso de ingeniería de requerimientos

Estudio de factibilidad Obtención y Análisis de requerimientos Especificación de requerimientos Validación de requerimientos Informe de factibilidad Modelos de sistemas Requerimientos del usuario y del sistema

Documento de requerimientos

(32)

Ingeniería de requerimientos

Especificación de requerimientos Modelación y especificación

De los requerimientos del sistema

Obtención de requerimientos del sistema Especificación de los Requerimientos del usuario Obtención de Requerimientos Del usuario Especificación de requerimientos Del negocio Creación de prototipos Estudio de factibilidad

(33)

Estudios de factibilidad

► Un estudio de factibilidad decide si el sistema propuesto

merece o no la pena.

► un estudio corto y orientado a resolver varias preguntas

▪ si el sistema contribuye a los objetivos de la organización;

▪ Si el sistema puede ser implementado utilizando la tecnología actual y dentro del presupuesto;

(34)

Factibilidad e implementación

► Basado en la valoración (lo que se necesita) de la

recolección de información y redacción de un informe.

► Preguntas para las personas de la organización

▪ ¿cómo se las arreglaría la organización si no se llevase a cabo este sistema?

▪ ¿Cuáles son los problemas con los procesos actuales?

▪ ¿cómo ayudaría el nuevo sistema a resolverlos?

▪ ¿cuáles serían los problemas de integración?

▪ ¿se necesita nueva tecnología?¿qué capacidades?

(35)

Obtención y análisis

► A veces llamado obtención de requerimientos o

descubrimiento de requerimientos.

► Implica el trabajo de personal técnico con los clientes para

informarse del dominio de la aplicación, los servicios que el sistema debería proporcionar y las restricciones operacionales del sistema.

► Debe implicar a los usuarios finales, administradores,

ingenieros implicados en el mantenimiento, expertos del dominio, sindicatos, etc. Todos estos son designados como stakeholders.

(36)

Espiral de los requerimientos

Organización y clasificación de los requerimientos Negociación y priorización de requerimientos Documentación de requerimientos Descubrimiento de requerimientos

(37)

Actividades del proceso

► Descubrimiento de los requerimientos

▪ Interactuar con los stakeholders para descubrir sus requerimientos. También son descubiertos los requerimientos del dominio en esta etapa.

► Organización y clasificación de los requerimientos

▪ Agrupa los requerimientos relacionados y los organiza en grupos coherentes

► Priorización y negociación

▪ Priorizar los requerimientos y resolver los conflictos de los requerimientos.

► Documentación de los requerimientos

▪ Los requerimientos se documentan y son introducidos en la siguiente ronda de la espiral

(38)

Técnicas y herramientas utilizadas en la IR

► Entrevistas y Cuestionarios

► Lluvia de Ideas (Brainstorm)

► Prototipos

► Proceso de Análisis Jerárquico (AHP)

► Administración de Requerimientos con casos de

(39)

39

Técnica Ventajas Desventajas

Entrevistas y

Cuestionarios • Mediante ellas se obtiene una gran cantidad de información correcta a través del usuario. • Pueden ser usadas para obtener un pantallazo

del dominio del problema. • Son flexibles.

• Permiten combinarse con otras técnicas.

• La información obtenida al principio puede ser redundante o incompleta.

• Si el volumen de información manejado es alto, requiere mucha organización de parte del analista, así como la habilidad para tratar y comprender el comportamiento de todos los involucrados.

Lluvia de Ideas • Los diferentes puntos de vista y las confusiones en cuento a terminología, son aclaradas por expertos.

• Ayuda a desarrollar ideas unificadas basadas en la experiencia de un experto.

• Es necesaria una buena compenetración del grupo participante.

Prototipos • Ayudan a validar y desarrollar nuevos requerimientos.

• Permite comprender aquellos requerimientos que no están muy claros y que son de alta volatilidad.

• El cliente puede llegar a pensar que el prototipo es una versión del software que será

desarrollado.

• A menudo, el desarrollador hace compromisos de implementación con el objetivo de acelerar la puesta en funcionamiento del prototipo

Análisis Jerárquico • Permite determinar el grado de importancia de cada requerimiento.

• Ayuda a identificar conflictos en los requerimientos.

• Muestra el orden en que deben ser implementados los requerimientos.

• Debe construirse un estándar claro de evaluación, que incluya la participación del cliente.

Casos de Uso • Representan los requerimientos desde el punto de vista del usuario.

• Permiten representar más de un rol para cada afectado.

• Identifica requerimientos estancados, dentro de un conjunto de requerimientos.

• En sistemas grandes, toma mucho tiempo definir todos los casos de uso.

• El análisis de calidad depende de la calidad con que se haya hecho la descripción inicial.

(40)

Técnicas que pueden ser utilizadas en las

actividades de IR

Análisis del Problema Evaluación y negociación Especificación de Requisitos Validación Evolución Entrevistas y Cuestionarios X X Lluvia de Ideas X X Prototipos X Análisis Jerárquico X X

(41)

Validación de requerimientos

► Se ocupa de demostrar que los requerimientos

definen el sistema que el cliente realmente quiere.

► Los costes de los errores de requerimientos son

altos así que la validación es muy importante.

▪ Arreglar un error de requerimientos después de la

entrega puede costar unas 100 veces el coste de arreglar un error de implementación.

(42)

Comprobación de requerimientos

Validez.

¿Proporciona el sistema las funciones que mejor sostienen las necesidades del cliente?

Consistencia

¿hay algún conflicto entre requerimientos?

Integridad

¿Se incluyen todas las funciones requeridas por el cliente?

Realismo

¿Pueden los requerimientos ser implementados, dotados de presupuesto y tecnología disponibles?

(43)

Técnicas de validación de requerimientos

► Revisión de requerimientos

▪ Análisis sistemático manual de los requerimientos

► Creación de prototipos

▪ Utilizar un modelo ejecutable del sistema para

comprobar los requerimientos. Tratado en el tema 17.

► Generación de casos de prueba

▪ Desarrollar pruebas ayuda a verificar la claridad de

(44)

Revisión de requerimientos

► Deberían ser realizadas revisiones regulares mientras está

siendo formulada la definición de los requerimientos

► Tanto el cliente como el contratista deberían estar

involucrados en las revisiones.

► Las revisiones pueden ser formales (con documentos

completos) o informales. Las buenas comunicaciones entre los desarrolladores, el cliente y los usuarios puede resolver

(45)

45

Evolución de requerimientos

► Los requerimientos evolucionan constantemente con

dos objetivos básicos:

▪ Entender mejor las necesidades de los usuarios.

▪ Para adaptarse a las necesidades cambiantes de los usuarios.

► Es esencial tener en cuenta estos cambios, tanto del

(46)

Evolución de requerimientos

Entendimiento inicial del problema

Cambios en el entendimiento del problema Requerimientos Iniciales Requerimientos Cambiados

(47)

Control de la evolución

Documento de Requerimientos V1 Implementación Sistema V1 Implementación Sistema V1 Documento de Requerimientos V1 Implementación Sistema V2 Documento de Requerimientos V2 Implementación Sistema V2 Cambio de Requerimientos

Requerimientos y Sistema Inconsistentes

(48)

LA INGENIERÍA DE REQUISITOS

EN LOS MÉTODOS DE

(49)

Métodos Agiles

Informática Empresarial, UCR IF 7100 Ingeniería de Software

49

► Métodos que dan soporte a los valores incluidos en el

Manifiesto Ágil.

► Iterativos de ciclo corto y flexibles.

► Se centran más en el código que en la documentación,

debido a:

▪ Son más adaptativos que predictivos: poca planificación.

▪ Orientados a las personas: confian en la experiencia, competencia y colaboración

(50)

► Extreme Programming (XP)

▪ No habla explicitamente de técnicas de IR.

▪ Usa entrevistas, brainstroming, priorización e historias de usuario.

► Scrum

▪ Los requisitos se recolectan en el backlog (lista priorizada de características a implementar)

▪ En cada sprint se implementan las más prioritarias.

(51)

► Metodologías Crystal

▪ Alguna de las técnicas pueden ser comparadas con las de IR (prototipado, revisiones, pruebas)

► Desarrollo dirigido por características (FDD)

▪ La lista de características recogen de algún modo los requisitos.

➢ Desarrollo dirigido por pruebas (TDD)

▪ La lista de características se documenta en los casos de prueba automatizados y la validación se da

corriendo dichas pruebas contra el código fuente.

51

Informática Empresarial, UCR IF 7100 Ingeniería de Software

(52)

► Método de desarrollo de sistemas dinámico (DSDM)

▪ Los requisitos se elicitan en las dos primeras fases (viabilidad y estudio del negocio)

▪No hay técnicas especificas, se pueden usar varias.

► Desarrollo adaptativo de software (ASD)

▪Desarrollo iterativo e incremental con prototipos.

(53)

Técnicas de IR en los MA

IF 7201 - Gestion de

Proyectos de Software I 2006

53

Implicación de los usuarios:

▪ Suponen “cliente ideal” con todo el conocimiento.

▪ La IR tradicional evitan esta suposición con técnicas para confrontar y validar.

▪ En estos métodos los clientes sólo se implican en las primeras fases.

Entrevistas

▪ Es la principal técnica de elicitación de los MA (orientación al cliente)

(54)

Técnicas de IR en los MA

Priorización:

▪ Practica común de los MA

▪ Implementan primero los requisitos más valiosos para el cliente.

▪ Se re prioriza muy frecuentemente: adaptación al entorno.

Reuniones de análisis

▪ Son frecuentes durante todo el proceso.

▪ La documentación es menos extensa pero altamente disciplinada (por ejemplo todas las historias a

implementar deben cumplir con un criterio de aceptación con un formato estándar)

(55)

Técnicas de IR en los MA

55

Modelado

▪ A diferencia de la IR tradicional, en los MA solo se usan para facilitar la comprensión.

▪ Son de usar y tirar

Documentación

▪ No se pretende generar una documentación completa del proyecto.

(56)

Técnicas de IR en los MA

Validación

▪ Usan reuniones de revisión para la validación de requisitos.

Gestión de los Requisitos

▪ No es posible la trazabilidad total de los requisitos como en la IR tradicional.

▪ Sin embargo, proporcionan una buena base: backlog, lista de características, ...

(57)

Historias

de Usuario

57

► Una de las técnicas más usadas en los MA.

► Escritas por el usuario en su lenguaje, no contienen

aspectos técnicos.

► Sirven para estimar tiempos de desarrollo (casos de

uso), no necesitan más detalle.

► Tres frases aproximadamente y entre una y tres

semanas de desarrollo.

(58)

Puntos Clave

► Las fases de la IR están presentes en los MA, pero

no claramente separadas.

► Las técnicas están vagamente descritas, confian en

la capacidad de los técnicos, lo que requiere buen entrenamiento de los equipos

► Documentación poco extensa

▪ Perdida de conocimientos

▪ Más compacta y fácil de mantener

(59)

Puntos Clave

59

► Estimación de coste y tiempo difíciles, por la

aproximación perezosa.

► Los MA proporcionan muchas ventajas en el

desarrollo en comunicación y eficiencia.

► Requiere una alta disciplina y automatización de

procesos (como la trazabilidad) para poder ser realmente agiles.

Referencias

Documento similar

Requerimientos de procesamiento, reglas de decisión y requerimientos de recursos para obtener los cuadros que existen de acuerdo al origen de la consulta: finanzas pública o

Por defecto, GreenSQA propone construir como instrumento básico de pruebas las Matrices de Requerimientos de Pruebas (modelo jerárquico de los requerimientos de pruebas

4. El sistema muestra la Interfaz XV. El Gerente introduce los datos. El Gerente selecciona “Aceptar”. El sistema verifica que todos los datos estén correctos. En Caso de

La media obtenida presenta niveles bajos de aceptación, apreciándose una baja dispersión de los datos, lo que permite concluir que la variable Habilidad de de facilitador según

Por último, para el tercer objetivo, se compararon los resultados del análisis de sentimiento con los sondeos de opinión más importantes del país, para lo cual se aplicó un

• reconocimiento por parte del líder, del tiempo requerido para realizar esta labor, ya que él mismo vivió la sobrecarga de tareas por mal considerar que el manejo de

Plan (Establecer el ISMS): Implica, establecer a política SGSI, sus objetivos, procesos, procedimientos relevantes para la administración de riesgos y mejoras para la

El consumo energético será la cantidad de energía que no ha sido cubierta por la contribución de energía renovable que es necesaria suministrar a los sistemas técnicos del