analisis de requerimientos, ingenieria de software

19
Análisis de Requerimientos Análisis de Requerimientos Situación de la Industria de Software Mas del 30% de todos los proyectos de Mas del 30% de todos los proyectos de software son cancelados antes de su software son cancelados antes de su finalización. finalización. Mas del 70% de los proyectos restantes Mas del 70% de los proyectos restantes fallan al entregar y evaluar las características fallan al entregar y evaluar las características esperadas. esperadas. Un proyecto promedio ejecuta 189% sobre el Un proyecto promedio ejecuta 189% sobre el presupuesto aprobado y extiende sus presupuesto aprobado y extiende sus actividades sobre el 222%. actividades sobre el 222%. » Fuente : Fuente : The The Standish Standish Group Group - 1996 1996

Upload: marvin-romero

Post on 18-Dec-2014

36.470 views

Category:

Technology


5 download

DESCRIPTION

Analisis de requerimientos, Ingenieria de Software

TRANSCRIPT

Page 1: Analisis de requerimientos, Ingenieria de Software

1

Análisis de Requerimientos

Análisis de Requerimientos

Situación de la Industria de Software

•• Mas del 30% de todos los proyectos de Mas del 30% de todos los proyectos de software son cancelados antes de su software son cancelados antes de su finalización.finalización.

•• Mas del 70% de los proyectos restantes Mas del 70% de los proyectos restantes fallan al entregar y evaluar las características fallan al entregar y evaluar las características esperadas.esperadas.

•• Un proyecto promedio ejecuta 189% sobre el Un proyecto promedio ejecuta 189% sobre el presupuesto aprobado y extiende sus presupuesto aprobado y extiende sus actividades sobre el 222%.actividades sobre el 222%.

»» Fuente : Fuente : TheThe StandishStandish GroupGroup -- 19961996

Page 2: Analisis de requerimientos, Ingenieria de Software

2

Porqué los Proyectos de Software son exitosos ?

•• Involucra a UsuariosInvolucra a Usuarios 15.9%15.9%•• Soporte AdministraciónSoporte Administración 13.9%13.9%•• Clara definición de RequerimientosClara definición de Requerimientos 13.0%13.0%•• Apropiado PlaneamientoApropiado Planeamiento 9.6%9.6%•• Expectativas RealistasExpectativas Realistas 8.2%8.2%•• Hitos no ExtensosHitos no Extensos 7.7%7.7%•• Staff Competente de profesionalesStaff Competente de profesionales 7.2%7.2%•• PropietarioPropietario 5.3%5.3%

»» Fuente: Fuente: QualityQualitySystemsSystems & Software & Software -- 19971997

Porqué los Proyectos de Software fallan ?

•• Requerimientos IncompletosRequerimientos Incompletos 13.1%13.1%•• Falta de RequerimientosFalta de Requerimientos 12.4%12.4%•• Falta de RecursosFalta de Recursos 10.6%10.6%•• Expectativas no RealistasExpectativas no Realistas 9.9%9.9%•• Cambio Requerimientos/EspecificacionesCambio Requerimientos/Especificaciones 8.7%8.7%•• Falta de PlaneamientoFalta de Planeamiento 8.1%8.1%•• No se especifico el tiempo adecuadoNo se especifico el tiempo adecuado 7.5%7.5%

»» Fuente : Fuente : QualityQualitySystemsSystems & Software & Software -- 19971997

Page 3: Analisis de requerimientos, Ingenieria de Software

3

Qué es un Requerimiento ?Qué es un Requerimiento ?

• Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ].

• Un requerimiento de software puede ser definido como :– Una capacidad del software necesaria por el usuario

para resolver un problema o alcanzar un objetivo.– Una capacidad del software que debe ser reunida o

poseída por un sistema o componente del sistema para satisfacer un contrato, especificación, estándar, u otra documentación formal.

Qué son Requerimientos ?

•• Los requerimientos de usuario representan el Los requerimientos de usuario representan el conjunto completo de resultados a ser conjunto completo de resultados a ser obtenidos utilizando el sistema.obtenidos utilizando el sistema.

•• Los requerimientos de sistemas deben Los requerimientos de sistemas deben mostrar todo lo que el sistema debe hacer mostrar todo lo que el sistema debe hacer mas todas las restricciones sobre la mas todas las restricciones sobre la funcionalidad.funcionalidad.

•• Los requerimientos forman un modelo Los requerimientos forman un modelo completo, representando el sistema total a completo, representando el sistema total a algún nivel de abstracción.algún nivel de abstracción.

Page 4: Analisis de requerimientos, Ingenieria de Software

4

Rol de Requerimientos

•• Si un producto no es lo que el cliente o los Si un producto no es lo que el cliente o los usuarios quieren, entonces la calidad de la usuarios quieren, entonces la calidad de la construcción es irrelevante. construcción es irrelevante.

•• El rol clave de los requerimientos es mostrar a El rol clave de los requerimientos es mostrar a los desarrolladores y usuarios que se necesita los desarrolladores y usuarios que se necesita de un sistema. Proveer los requerimientos forma de un sistema. Proveer los requerimientos forma parte de un lenguaje que todos comprenden, ya parte de un lenguaje que todos comprenden, ya que todos están involucrados, incluyendo los que todos están involucrados, incluyendo los clientes.clientes.

•• El primer y básico rol de los requerimientos es El primer y básico rol de los requerimientos es por lo tanto la comunicación.por lo tanto la comunicación.

Cómo identificamos los Cómo identificamos los Requerimientos ?Requerimientos ?

•• Los Requerimientos toman vida desde que Los Requerimientos toman vida desde que realizamos nuestro primer encuentro de realizamos nuestro primer encuentro de interlocución con usuarios o clientes.interlocución con usuarios o clientes.

•• Este puede desarrollarse utilizando cualquiera Este puede desarrollarse utilizando cualquiera de una variedad de técnicas como entrevistas de una variedad de técnicas como entrevistas para intercambiar opiniones, para intercambiar opiniones, brainstormingbrainstorming, , prototipeoprototipeo, cuestionarios, etc., cuestionarios, etc.

•• Cuando los requerimientos se logran redactar a Cuando los requerimientos se logran redactar a un significativo nivel de detalle, tendremos listo un significativo nivel de detalle, tendremos listo el documento denominado “Especificación de el documento denominado “Especificación de Requerimientos”.Requerimientos”.

Page 5: Analisis de requerimientos, Ingenieria de Software

5

Buena Especificación de Requerimientos

•• Un resultado primario de esta administración Un resultado primario de esta administración es la Especificación de Requerimientos, la es la Especificación de Requerimientos, la cual define y documenta en forma completa cual define y documenta en forma completa el comportamiento externo del sistema a ser el comportamiento externo del sistema a ser construido. Caracterizándose por :construido. Caracterizándose por :–– Definidos sin Definidos sin ambiguedadambiguedad–– Son completosSon completos–– Tienen consistenciaTienen consistencia–– Especifica el origenEspecifica el origen–– Evita detalles de diseñoEvita detalles de diseño–– Están enumeradosEstán enumerados

Beneficios de una Buena Administración de Requerimientos

•• Mejor control de proyectos complejos.Mejor control de proyectos complejos.•• Mejora en la calidad del software y en la Mejora en la calidad del software y en la

satisfacción del cliente.satisfacción del cliente.•• Reducción en los retrasos y en los costos del Reducción en los retrasos y en los costos del

proyecto.proyecto.•• Mejora en la comunicación del equipo.Mejora en la comunicación del equipo.•• Facilita la conformidad con estándares y Facilita la conformidad con estándares y

regulaciones.regulaciones.

Page 6: Analisis de requerimientos, Ingenieria de Software

6

Los Problemas de la Administración Los Problemas de la Administración de Requerimientosde Requerimientos

• No son siempre obvios y tienen muchas fuentes.• No son siempre fáciles de expresar en palabras.• Hay muchos tipos diferentes a distintos niveles

de detalle.• El número puede llegar a ser inmanejable.• Están relacionados a otros en una variedad de

formas.• Hay muchos interesados y partes responsables.• Cambian.• Pueden ser sensibles al tiempo.

El Alto Costo de Errores en los Requerimientos

•• Hay fuertes evidencias que una efectiva Hay fuertes evidencias que una efectiva administración de requerimientos conducen administración de requerimientos conducen los ahorros del proyecto integral.los ahorros del proyecto integral.

•• Las tres razones primarias para esto son :Las tres razones primarias para esto son :–– Costos de reparar errores en los requerimientos Costos de reparar errores en los requerimientos

superan en mas de 10 veces a otros errores.superan en mas de 10 veces a otros errores.–– Errores de requerimientos comprenden encima del Errores de requerimientos comprenden encima del

40% de todos los errores de un proyecto de software. 40% de todos los errores de un proyecto de software. –– Pequeños reducciones en el número de errores de Pequeños reducciones en el número de errores de

requerimientos rinden grandes dividendos al evitar requerimientos rinden grandes dividendos al evitar costos de recostos de re--trabajo y días de retraso.trabajo y días de retraso.

Page 7: Analisis de requerimientos, Ingenieria de Software

7

Procesos de Ingeniería Software

Requerimientos de usuarios

Nuevo o cambiado

Sistema

Nuevo o cambiado

Procesos deProcesos de

Ingeniería de SoftwareIngeniería de Software

“ Un Proceso es el conjunto total de actividades de ingeniería necesarias para transformar dentro de software los requerimientos de usuarios ”

“Managing the Process”, Humphrey, 1989

Requerimientos del Dominio

• Se derivan del dominio del sistema más que de las necesidades específicas de los usuarios. Pueden ser requerimientos funcionales nuevos, restringir los existentes o establecer cómo se deben ejecutar cálculos particulares.

• Los requerimientos del dominio son importantes debido a que a menudo reflejan los fundamentos del dominio de aplicación.

• Si estos requerimientos no se satisfacen, es imposible hacer que el sistema trabaje de forma satisfactoria.

Page 8: Analisis de requerimientos, Ingenieria de Software

8

Ej. Definición de Requerimientos de Usuario

1.El software debe proveer un medio para representar y acceder a archivos externos creados por otras herramientas.

Ej. Especificación de Requerimientos del sistema

1.1 Al usuario se le proveerá con los recursos para definir el tipo de archivos externos.

1.2 Cada tipo de archivo externo tendrá una herramienta asociada que será aplicada al archivo.

1.3 Cada tipo de archivo externo se representará como un icono especifico sobre la pantalla del usuario.

1.4 Se proveerán recursos para que el usuario defina el icono que representa un tipo de archivo externo.

1.5 Cuando un usuario selecciona un icono que representa un archivo externo, el efecto de esa selección es aplicar la herramienta asociada con este tipo de archivo al archivo representado por el icono seleccionado.

Page 9: Analisis de requerimientos, Ingenieria de Software

9

Requerimientos Funcionales

• Describen la funcionalidad o los servicios que se espera proveerá el sistema.

• Estos dependen del tipo de software y del sistema que se desarrolle y de los posibles usuarios del software.

• Cuando se expresan como requerimientos del usuario, habitualmente se describen de forma general mientras que los requerimientos funcionales del sistema describen con detalle la función de éste, sus entradas y salidas, excepciones, etc.

Ej. Sistema de Biblioteca1. El usuario deberá tener la posibilidad de

buscar referencias bibliográficas en el conjunto inicial de la base de datos o seleccionar un subconjunto de ella.

2.2. El sistema deberá proveer visores adecuados El sistema deberá proveer visores adecuados para que el usuario lea documentos en el para que el usuario lea documentos en el almacén de documentos.almacén de documentos.

3. A cada pedido se le deberá asignar un identificador único que el usuario podrá copiar al área de almacenamiento permanente de la cuenta.

Page 10: Analisis de requerimientos, Ingenieria de Software

10

Análisis de la especificación de Análisis de la especificación de RequerimientosRequerimientos

• El sistema de biblioteca puede almacenar documentos en diferentes formatos y la intención de este requerimiento es que los visores para todos estos formatos estén disponibles.

• Sin embargo, el requerimiento es ambiguo puesto que no clarifica que los visores para cada formato deban ser provistos.

• Un desarrollador bajo la presión del tiempo sencillamente podría proporcionar un visor de texto y afirmar que se ha cumplido el requerimiento.

Requerimientos No FuncionalesRequerimientos No Funcionales

• Son aquellos requerimientos que no se refieren directamente a las funciones específicas que entrega el sistema, sino a las propiedades emergentes de éste como la fiabilidad, la respuesta en el tiempo y la capacidad de almacenamiento.

• De forma alternativa, definen las restricciones del sistema, como la capacidad de los dispositivos de entrada/salida y la representación de datos que se utiliza en las interfaces del sistema.

• Sin embargo, estos requerimientos no siempre se refieren al sistema de software a desarrollar.

Page 11: Analisis de requerimientos, Ingenieria de Software

11

• Porcentaje de declaraciones dependientes del objetivo• Número de sistemas objetivo

Portabilidad

• Tiempo de reinicio después de fallas

• Porcentaje de eventos que provocan las fallas• Probabilidad de corrupción de los datos después de las fallas

Robustez

• Tiempo promedio entre fallas• Probabilidad de no disponibilidad

• Tasa de ocurrencia de las fallas• Disponibilidad

Fiabilidad

• Tiempo de capacitación

• Número de ventanas de ayuda

Facilidad de uso

• KB’s• Tamaño de RAM

Tamaño

• Transacciones procesadas por segundo

• Tiempo de respuesta al usuario y a eventos• Tiempo de actualización de la pantalla

Rapidez

MEDIDAPROPIEDAD

MÉTRICAS PARA ESPECIFICAR REQUERIMIENTOS NO FUNCIONALESMÉTRICAS PARA ESPECIFICAR REQUERIMIENTOS NO FUNCIONALES

Page 12: Analisis de requerimientos, Ingenieria de Software

12

Identificación de Requerimientos y Reglas del Negocio

• Para identificar los requerimientos correctos del negocio primero debemos de comprender como funciona, es decir cuales son las reglas del negocio.

• Mientras más complejo es el sistema una mayor cantidad de vistas del mismo son necesarias para comprender su funcionamiento.

• Las distintas vistas del negocio pueden conseguirse a través de un mapeo de la situación actual (AS-IS) utilizando a un alto nivel:

– El Diagrama de descomposición funcional o mapeo de procesos.– Las cadenas de responsabilidad para la atención de los requerimientos– Los Diagramas de Actividad– Los Diagramas de Colaboración– Los Diagramas de Interacción de Roles– Casos de Uso del Negocio

Descomposición Descomposición Funcional Funcional –– IDEF0IDEF0

Page 13: Analisis de requerimientos, Ingenieria de Software

13

Cadena de ResponsabilidadesCadena de Responsabilidades• Es la cadena funcional que se

establece para la atención de un requerimiento.

• Una cadena involucra las interacciones producto de los requerimientos de un actor externo al negocio (cliente o proveedor) con las responsabilidades de un trabajador de negocio.

Actor Negocio

Trabajador Negocio

Alguien o alguna cosa fuera del negocio que interactúa con el.

Role o conjunto de roles dentro del negocio. Interactúa con otros trabajadores de negocio y manipula las entidades.

CADENA DE CADENA DE RESPONSABILIDADESRESPONSABILIDADES

Actor de Negocio

Trabajadorde Negocio

Punto deDecisión

Barra desincronización

Barra debifurcación

Condición final

Condición final

Unidad de Negocio

• La cadena eslabona a las unidades organizacionales de los trabajadores de negocio, que intervienen como consecuencia de las responsabilidades de cada uno y a través de la interacción entre ellos (cumpliendo un rol) y de estos con el actor de negocio externo (cliente o proveedor).

Page 14: Analisis de requerimientos, Ingenieria de Software

14

Diagrama de Interacción de Diagrama de Interacción de RolesRoles

• Un diagrama que muestra las actividades de cada actor interno o externo como consecuencia de su interacción para la atención de un requerimiento.

• Los roles de usuario son definidos en los rectángulos de la parte superior de cada línea de rol vertical.

• Modela la interacción entre diferentes actores, incluyendo al cliente, dentro de un proceso de negocios.

• Este ilustra el flujo de trabajo (líneas verticales gruesas) hechas por diferentes roles (líneas verticales delgadas) vía los eventos que causan la interacción (flechas horizontales).

Page 15: Analisis de requerimientos, Ingenieria de Software

15

Diagrama de Interacción de Diagrama de Interacción de RolesRoles

• Los puntos de inicio y termino son círculos, y las actividades son las líneas gruesas asignadas a cada rol de usuario.

• Las flechas definen las condiciones para la transición entre estas entidades.

Actor Negocio

Trabajador Negocio

Trabajador Negocio

mensaje

actividades

decisión

DIAGRAMA DE INTERACCIÓNDE ROLES

mensaje

Eventode inicio

reproceso

Page 16: Analisis de requerimientos, Ingenieria de Software

16

DIAGRAMA DE COLABORACIÓNDIAGRAMA DE COLABORACIÓN• Es un diagrama que permite representar la

forma en la que colaboran los trabajadores de negocio para satisfacer un requerimiento de un actor de negocio, así como representar las entidades relacionadas.

• Documentan como interactúan los trabajadores de negocio y las entidades del negocio para ejecutar una función de negocio, mostrando los mensajes intercambiados entre ellos.

• Una entidad es alguna cosa manejada o utilizada por los trabajadores de negocio.

Page 17: Analisis de requerimientos, Ingenieria de Software

17

Diagrama de ColaboraciónDiagrama de Colaboración

Presidente CA

ComisiónAdmisión

ResponsableLectura

ResponsableProcesamiento

FICHASÓPTICAS

RESULTADOSLECTURA

CLAVESRESPUESTA

RESULTADOSCALIFICACIÓN

Entre

ga fic

has

óptic

as

Entrega

resultados

de lectura

Entrega claves de respuesta

Entrega de

Resultados

Ordena

relectura de

errores

Ordena

recalificación

Diagrama de ActividadesDiagrama de Actividades

• Es un diagrama que presenta una vista alternativa a las actividades que realiza cada actor externo o interno para la atención de un requerimiento, y que puede utilizarse como complemento a la vista mostrada a través de una cadena de responsabilidades.

• En el diagrama se muestran un nodo de inicio, actividades, decisiones, barras de bifurcación y/o de sincronización, y un nodo final.

Page 18: Analisis de requerimientos, Ingenieria de Software

18

Ing. Luis Zuloaga Rotta FIIS-UNI

Generar Archivo de Ingresantes

Responsable Procesamiento

Comisión Admisión

Responsable Lectura

Lee las Hojas de Identificación

Lee hojas de respuesta

Genera archivo de lectura

Inicio

Verifican Resultados de la Lectura

Son correctos ?No

Si

Cubren Vacantes ?

Evaluan resultados

Registra Claves y vacantes

Procesa resultados

No

Genera Archivo de Ingresantes

Si

Fin

Diagrama deActividades

Casos de Uso de NegocioCasos de Uso de Negocio

• Un caso de uso es la cadena de interacciones entre un actor de negocio (cliente, proveedor o trabajador) y el sistema (la empresa, una unidad organizacional o un proceso del negocio) con la finalidad de satisfacer un requerimiento o alcanzar un objetivo.

• Una secuencia de acciones que produce un resultado de valor para un particular actor de negocio.

Page 19: Analisis de requerimientos, Ingenieria de Software

19

Negocio vs. SistemaNegocio vs. Sistema

• Cada trabajador de negocio identificado en el modelo del negocio es un potencial actor del sistema.

• Cada actor del negocio también es un potencial actor del sistema, si este actor de negocio interactúa directamente con el sistema bajo desarrollo.

• Cada caso de uso de negocio es un candidato a caso de uso del sistema.

Actor

Caso Uso de Negocio Caso Uso del Sistema

Actor Negocio

Trabajador Negocio

CLIENTE

Proceso de Pedido

Proceso de Cotización

FABRICACIÓN

DESPACHOINSTALACIÓN

FACTURACIÓN

VENTAS

<<include>>

Ejemplo de un Diagrama de Casos de Uso de NegocioEjemplo de un Diagrama de Casos de Uso de Negocio