• No se han encontrado resultados

Requerimientos dentro del Desarrollo de Software: Ingeniería y Administración

N/A
N/A
Protected

Academic year: 2022

Share "Requerimientos dentro del Desarrollo de Software: Ingeniería y Administración"

Copied!
8
0
0

Texto completo

(1)

Requerimientos dentro del Desarrollo de Software: Ingeniería y Administración

Ing. Antonio Nicolás Camacho Ing. Miguel E. Torres MSc.

Pontificia Universidad Javeriana – Facultad de Ingeniería Departamento de Ingeniería de Sistemas

Agenda

†

Definir el concepto de requerimiento.

†

Explicación de los diferentes niveles de detalle de requerimientos que se necesiten.

†

Introducción a la Noción de Ingeniería de Requerimientos.

†

Explicar porque los Requerimientos se involucran durante el tiempo de vida de un sistema.

†

Las habilidades de la Ingeniería de requerimientos.

En La Actualidad

† La dependencia de la economía global en el software ha generado una carrera en el mejoramiento de las técnicas de desarrollo de software.

† Entonces…¿Por qué se sigue presentando fracaso en los proyectos de hoy en día?

Los proyectos están plagados de:

„ Retrasos

„ Problemas de Calidad

„ Sobrecostos

„ CAMBIO!!!!

¿Cuál Es El Problema?

† Los requerimientos son la causa más común por la que fallan los proyectos de software [Reporte 94-00 de Standish Group’s CHAOS]

† El cambio, la incomprensión e inexactitud en los requerimientos son las causas más comunes por las que falla un proyecto.

† La incapacidad de manejar el cambio

† Afán por comenzar el “trabajo en serio!!”

¿Cuál Es La Solución?

¿Cómo registrar lo que un nuevo producto de software requiere? No es fácil manejar su ciclo de vida ya que es intangible…

“Los requerimientos son una especificaió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

¿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 es:

† (1) Una condición o capacidad que un usuario necesita para resolver un problema o alcanzar un objetivo.

† (2) Una capacidad o condición que debe poseer el sistema o los componentes del sistema para satisfacer un contrato, estándar, especificación, u otro documento formalmente impuesto.

† (3) Una representación documentada de una condición o capacidad documentada como las descritas en (1) y (2).

(2)

Otras Definiciones…

†“Un requerimiento puede ser algo que el producto debe hacer o una cualidad que el producto debe tener. Un requerimiento existe ya sea porque el tipo de producto demanda ciertas funciones o cualidades o porque el cliente quiere que ese requerimiento sea parte del producto final”.

†“Requerimiento es una especificación de que debería ser implementado. Son descripciones de cómo el sistema debería comportarse, o de las propiedades o atributos de un sistema.

También pueden ser una limitación en el proceso de desarrollo del sistema.”

¿Qué Es Un Requerimiento? 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.

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 maquina, Desempeño, tiempo, carga, etc.

Tipos De Requerimientos de Sistema

†Restricciones: Reflejan características del

dominio del sistema o del proceso mismo de desarrollo (Normalmente restricciones del dominio, funcionales como no funcionales). Ej:

†Proceso de pruebas

†Interface

†Lugar donde se debe realizar la implementación

Otros Tipos de Requerimientos

Necesidades del Cliente y Expectativas:

„

Del Negocio (Stockholder’s)

„

Del Usuario (user’s) Una vez analizados:

„

Del Sistema

„

Funcionales

„

No funcionales

„

De Diseño

Otros Tipos de

Requerimientos (cont.)

Una vez Verificados y Validados:

„

Verificados (en diseño)

„

Validados (en implementación)

„

Cualificados (constraints)

„

De Diseño

„

etcétera

IMPORTANTE: Todos los requerimientos

deben estar asociados a un subsistema

de la aplicación

(3)

Características De Un Buen Requerimientos

Un Buen Requerimiento debe ser:

† Completo

† Correcto

† Feasible

† Necesario

† Priorizable

† No Ambiguo

† Verificable

† Escrito en forma de

“Debe”

† Identificador único

† Necesario

† Conciso

† Consistente (No en conflicto con otros)

† No Repetido

† Puede Seguirse (Traceability)

† Localizado (en un componente o elemento del sistema)

† Independiente del Diseño

Características De Una Buena Especificación De Requerimientos

†Un Buen Especificación de Requerimientos de ser:

† Completa

† Consistente

† Modificable.

† Trazable - Fácil de Seguir

¿Cómo Llevar A Cabo Una Buena Documentación De Los

Requerimientos?

† Problemas más Frecuentes:

„ Difíciles de Recolectar

„ Imposibilidad de Rastrear el cambio

„ Difíciles de Escribir

„ Demasiada forma, poco contenido

„ Falta de organización

Hay ramas de la Ingeniería de Software cuyo objetivo es el llevar un proceso que permita encontrar y manejar esas necesidades que definen un sistema.

Ingeniería De Requerimientos

†

Ciencia y disciplina que se preocupa por encontrar, establecer y documentar los requerimientos de Software.

†

En el SWEBOK (Software Engineering Body of Knowledge) la Ingeniería de Requerimientos se 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 Los Requerimientos.

Ingeniería De Requerimientos

Objetivo: Definir el propósito de un sistema propuesto y esbozar su comportamiento externo.

Aplicabilidad:

†

Etapa inicial

†

Durante el ciclo de vida (refinamiento)

†

Mantenimiento

†

Reingeniería – Ingeniería en Reversa

Actividades De La Ingeniería De Requerimientos

†

Identificación de Stakeholders

†

Recolección y Descubrimiento de los requerimientos: Explorar, adquirir y concretar.

†

Identificación y clarificación de los requerimientos en sentencias simples

†

Analizar y Modelar requerimientos:

Representar el mundo real como descripción

abstracta de los requerimientos.

(4)

Actividades De La Ingeniería De Requerimientos

†

Especificación de los requerimientos: Descripción precisa para todos los Stakeholders y formalización.

„ Priorización

„ Derivación de requerimientos (requerimientos de diseño o requerimientos para el usuario final)

„ Partición (hardware, software, proceso, etc.)

„ Localización por subsistemas

†

Pruebas y Verificación

†

Administración de los requerimientos: Planeamiento, seguimiento, evaluación del impacto de cambios.

†

Validación de los requerimientos: Corrección y viabilidad.

Recolección Análisis y

Negociaciones Documentación Validación

Necesidades de Usuario Dominio de la Información

Información Existente Regulaciones Restricciones Estándares

Documento de Requerimientos Documento del Sistema

Requerimientos que se Pactaron

Proceso De La Ingeniería De Requerimientos

Estructura De La Ingeniería De Requerimientos

Ingeniería de Requerimientos

Desarrollo Administración

Recolección Análisis Especificación Verificación

Administración De Requerimientos

† Es una ciencia derivada de la ingeniería de

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.

„ Rastrear cambios

„ Mantener acuerdos

† Incluye la Planeación del proceso

El Plan de Requerimientos

†

Propósito

†

Resumen del Proyecto/Contrato

†

Trasfondo:

„

Origen del proyecto

„Stakeholders

†

Evolución de los requerimientos

„

Mecanismo

„

Roles y responsabilidades

El Plan de Requerimientos (cont.)

†

Definiciones

†

Mecanismos, métodos, técnicas, herramientas a usar

†

Identificación de Best-practices

†

Referencias

(5)

Las Actividades - Técnicas

Recolección de Requerimientos:

†

Entrevistas

†

Casos de Uso y/o Escenarios

†

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

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

Actividades Del Ciclo De Vida De Los Requerimientos

Análisis del Problema

Descripción del Producto Idea

Entendimiento relativamente completo de los requerimientos

Un SRS completo y consistente

Delineación de Restricciones Refinamiento de

Restricciones Entendimiento de

Problema Expansión de la

Información

Verificación de la Consistencia

Conciliación

Problemas Más Frecuentes

†

La definición del alcance del sistema

†

El entendimiento común de los requerimientos entre las diferentes comunidades participantes en el desarrollo del sistema

†

Tratar con la naturaleza volátil de los requerimientos

†

Arrastrar requerimientos

†

Documentos de requerimientos: con pérdidas, información presentada con ambigüedades o mal interpretadas, representación pobre o inadecuada

†

Oraciones inestables de los requerimientos

†

Información obsoleta

Problemas Más Frecuentes

Consecuencias:

†

Requerimientos pobres

†

Cancelación del desarrollo del sistema

†

Desarrollo de un sistema que será

insatisfactorio o inaceptable, con altos costos de mantenimiento o con una gran frecuencia de cambios.

†

Costos.

Habilidades De La Ingeniería De Requerimientos

Debe poseer las siguientes habilidades:

†

Comunicación (lectura – escritura)

†

Conocimiento del Negocio

†

Conocimiento Técnico (procesos,

desarrollo, administración, etc.)

(6)

Habilidades De La Ingeniería De Requerimientos

† Analizar el Problema:

„ Entender los problemas del negocio

„ Identificar usuarios finales

„ Proponer ideas macroscópicas

† Entender las Necesidades del Usuario:

„ Determinar las fuentes

„ Extraer la información (cómo acceder a la misma)

‡Entrevistas

‡Lluvia de Ideas

‡Prototipos

‡Cuestionarios

„ Asignar Prioridad

† Definir el Sistema:

„ Tomar Las necesidades y traducirlas a lo que el sistema debe hacer

„ Qué constituye un requerimiento

„ Formato de documentación

„ Formalidad del lenguaje

„ Prioridades y estimaciones

„ Riesgos técnicos

„ Alcance

† Administrar el Alcance del Sistema.

„ Administrar el alcance del Proyecto

‡Tiempo

‡Personal

‡Dinero

Habilidades De La Ingeniería De Requerimientos (cont.)

„ Atributos de los Requerimientos

‡Prioridad

‡Esfuerzo

‡Riesgo

„ Refinar la Definición del Sistema:

‡Descripciones más detalladas

‡Verificar que el sistema cumpla con las necesidades de los usuarios.

† Administrar el cambio de los requerimientos:

„ Línea Base

„ Rastreo histórico

„ Determinar dependencias Rastreables

„ Mantenimiento de versiones

Habilidades De La Ingeniería De Requerimientos (cont.)

Conceptos Importantes De Los Requerimientos

†

Para aplicar estas habilidades hay que tener en cuenta los siguientes conceptos

„

Tipos de requerimientos

„

Equipos Poli-funcionales

„

Trazabilidad

„

Atributos Multi -dimensionales

„

Cambio histórico

Tipos De Requerimientos

† Tipo de Requerimiento: Una clase específica de Requerimientos.

TR

TR1 TR2

TR1.1 TR1.2 TR1.3

Reglas del Negocio, la Visión

Necesidades de usuario, requerimientos del Producto, Características

Casos de Uso, Procedimientos

Equipos Interdisciplinarios

Requerimientos

Jefe del Producto Diseñadores e Implementadores

Analistas

Aseguramiento de la Calidad

Técnicos

Director del Proyecto

(7)

Trazabilidad

Req. A

Req. B

Diseño Pruebas Documentación de usuarios

Requerimientos del Producto

Requerimientos Detallados

Procesos finales

Las Características de un Requerimiento están acompañadas de otras.

Atributos Multidimensionales

TR

R1 R2 R3

Atributos

Atributos No tan Detallados

Detallados hasta donde se necesite

Historial De Cambios

† Gravar las versiones

„

Capturar las razones del cambio

„

Reducir el Riesgo

‡

¿Por qué cambió?

‡

¿Qué cambió?

‡

Cuando

‡

Bajo que autorización

Calidad De Los Requerimientos

†

Para mejorar la calidad de los proyectos hay que:

„

Estandarizar

„

Medir

„

Hacer uso de herramientas

Requerimientos Definición/Especificación

† Definición de Requerimientos

„ Una declaración en un Lenguaje Natural incluye los diagramas de los servicios del sistema y sus límites operacionales. Escrito para clientes.

† Especificación de Requerimientos

„ Un documento estructurado con descripción o detalle de los servicios del sistema. Escrito como un contrato entre el cliente y el contratista.

† Especificación de Software

„ Descripción detallada de software, la cual, puede servir como una base para diseño o implementación. Escrito para desarrolladores.

Lectores De Requerimientos

Gerencia de Cliente Usuarios Finales del Sistema Ingenieros de Clientes Gerencia de Contratistas Arquitectos del Sistema Definición de

Requerimientos

Requerimientos Especificación de

Usuarios Finales del Sistema Ingenieros de Cliente Arquitectos del Sistema Desarrolladores de Software

Especificación de Software

(Quizá) Ingenieros de Clientes Arquitectos del Sistema

(8)

Definiciones Y Especificaciones

Definición de Requerimientos

1.

El Software proporcionará significado de representación y acceso a archivos externos creados por otras herramientas.

Especificación de Requerimientos

1.1 El usuario debe proporcionar facilidades para definir el tipo de archivos externos.

1.2 Cada tipo de archivo externo puede tener una herramienta asociada. La cual, será aplicada para el archivo.

1.3 Cada tipo de archivo externo será representado como un icono específico mostrado al usuario.

1.4 Las facilidades proporcionadas para la representación del icono en un tipo de archivo externo será definido por el usuario.

1.5 Cuando un usuario selecciona una representación de icono de un archivo externo, el 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.

Productos

†

Documento de especificación de los requerimientos del software.

†

Internamente consistente

†

Consistente con documentos prácticas negocio

†

Correcto y completo (necesidades usuario)

†

Claro

†

Base para diseño y pruebas

†

Puede ser documento legal

†

Planeación y gestión

†

Base para manual de usuario

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.

Referencias

Documento similar

[r]

- Usuario final: del inglés (“End User”) tipo de usuario que no es programador pero utiliza herramientas de desarrollo para crear o modificar objetos software. - Funcionalidad:

De la metodología de desarrollo de software ágil XP se seleccionó a la historia de usuario como una práctica importante para la organización de los requerimientos del cliente, de

Con esta máquina es posible realizar diversas operaciones de medida directa sobre una pieza, apoyándose en elementos geométricos sencillos y de fácil comprensión para conseguir

«factores autónomos generadores de liquidez» que pueden obligar a la autoridad monetaria a «aumentar la cantidad de dinero hasta niveles que hacen imposible la estabilidad de

• 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

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health

De igual manera, la identidad se ve reflejada en la forma en que muchos de estos jóvenes expresan su propio criterio y lo dan a conocer justificadamente. 20 Manual De