ingeniería del software umg ingeniería en sistemas ingeniería de requisitos ing. david gonzález
TRANSCRIPT
Ingeniería del Software UMG Ingeniería del Software UMG Ingeniería en SistemasIngeniería en Sistemas
Ingeniería de RequisitosIngeniería de Requisitos
Ing. David GonzálezIng. David González
ObjetivosObjetivos Introducción a la Noción de Ingeniería de Introducción a la Noción de Ingeniería de
Requerimientos.Requerimientos. Explicación de los diferentes niveles de detalle de Explicación de los diferentes niveles de detalle de
requerimientos que se necesiten.requerimientos que se necesiten. Describir como deben ser organizados los Describir como deben ser organizados los
documentos de un Sistema de Requerimientos.documentos de un Sistema de Requerimientos. Describir la validación del Proceso de Describir la validación del Proceso de
Requerimientos.Requerimientos. Explicar porque los Requerimientos se involucran Explicar porque los Requerimientos se involucran
durante el tiempo de vida de un sistema.durante el tiempo de vida de un sistema.
ProblemasProblemas Los usuarios no saben lo que quieren.Los usuarios no saben lo que quieren. Un sistema tiene muchos usuarios y ninguno tiene Un sistema tiene muchos usuarios y ninguno tiene
una visión de conjunto.una visión de conjunto. No saben cómo hacer más eficiente la operacióNo saben cómo hacer más eficiente la operaciónn
en su conjuntoen su conjunto No saben qué partes de su trabajo pueden No saben qué partes de su trabajo pueden
transformarse en software.transformarse en software. No saben detallar lo que saben de forma precisa.No saben detallar lo que saben de forma precisa.
Ingeniería de RequerimientosIngeniería de Requerimientos
El proceso de establecer los servicios que el cliente El proceso de establecer los servicios que el cliente requiere de un sistema y los limites bajo los cuales requiere de un sistema y los limites bajo los cuales opera y se desarrolla.opera y se desarrolla.
Un requerimiento es una necesidad documentada Un requerimiento es una necesidad documentada sobre el contenido, forma o funcionalidad de un sobre el contenido, forma o funcionalidad de un producto o servicio.producto o servicio.
CaracterísticasCaracterísticas Necesario:Necesario: Lo que pida un requerimiento debe ser Lo que pida un requerimiento debe ser
necesario para el producto.necesario para el producto. No ambiguo:No ambiguo: El texto debe ser claro, preciso y tener una El texto debe ser claro, preciso y tener una
única interpretación posible.única interpretación posible. Conciso:Conciso: Debe redactarse en un lenguaje comprensible por Debe redactarse en un lenguaje comprensible por
los inversores en lugar de uno de tipo técnico y los inversores en lugar de uno de tipo técnico y especializado, aunque aún así debe referenciar los aspectos especializado, aunque aún así debe referenciar los aspectos importantesimportantes
Consistente:Consistente: Ningún requerimiento debe entrar en conflicto Ningún requerimiento debe entrar en conflicto con otro requerimiento diferente, ni con parte de otro. con otro requerimiento diferente, ni con parte de otro. Asimismo, el lenguaje empleado entre los distintos Asimismo, el lenguaje empleado entre los distintos requerimientos debe ser consistente también.requerimientos debe ser consistente también.
CaracterísticasCaracterísticas
Completo:Completo: Los requerimientos deben contener en sí Los requerimientos deben contener en sí mismos toda la información necesaria, y no remitir a mismos toda la información necesaria, y no remitir a otras fuentes externas que los expliquen con más detalle.otras fuentes externas que los expliquen con más detalle.
Alcanzable:Alcanzable: Un requerimiento debe ser un objetivo Un requerimiento debe ser un objetivo realista, posible de ser alcanzado con el dinero, el tiempo realista, posible de ser alcanzado con el dinero, el tiempo y los recursos disponibles.y los recursos disponibles.
Verificable:Verificable: Se debe poder verificar con absoluta Se debe poder verificar con absoluta certeza, si el requerimiento fue satisfecho o no. Esta certeza, si el requerimiento fue satisfecho o no. Esta verificación puede lograrse mediante inspección, análisis, verificación puede lograrse mediante inspección, análisis, demostración o testeo.demostración o testeo.
Requisitos funcionalesRequisitos funcionales
Definen lo que el sistema tiene que hacer, los Definen lo que el sistema tiene que hacer, los servicios que debe proporcionar al usuarioservicios que debe proporcionar al usuario
Describen la funcionalidad del sistemaDescriben la funcionalidad del sistema
Requisitos no funcionalesRequisitos no funcionales
Delimitan las condiciones en que el sistema presta Delimitan las condiciones en que el sistema presta servicios a los usuarios servicios a los usuarios Velocidad de respuestaVelocidad de respuestaAncho de banda requeridoAncho de banda requeridoEspacio en memoria o en discoEspacio en memoria o en disco
¿Qué es un Requerimiento?¿Qué es un Requerimiento? Es un rango de instrucciones abstractas de alto nivel de un Es un rango de instrucciones abstractas de alto nivel de un
servicio o de un sistema, limitado a detallar una servicio o de un sistema, limitado a detallar una especificación funcional matemática.especificación funcional matemática.
Así es inevitable como los Requerimientos pueden servir Así es inevitable como los Requerimientos pueden servir en una función dualen una función dualPuede ser la base para una declaración de un contrato, Puede ser la base para una declaración de un contrato,
por lo tanto, deber estar abierto a interpretación.por lo tanto, deber estar abierto a interpretación.Puede ser la base para el contrato en sí, por lo tanto, Puede ser la base para el contrato en sí, por lo tanto,
debe ser definido en detalle.debe ser definido en detalle.Ambas declaraciones serán llamadas Requerimientos.Ambas declaraciones serán llamadas Requerimientos.
Requerimientos Requerimientos Definición/EspecificaciónDefinición/Especificación
Definición de RequerimientosDefinición de Requerimientos Una declaración en un Lenguaje Natural incluye los diagramas Una declaración en un Lenguaje Natural incluye los diagramas
de los servicios del sistema y sus límites operacionales. de los servicios del sistema y sus límites operacionales. Escrito para clientes.Escrito para clientes.
Especificación de RequerimientosEspecificación de Requerimientos Un documento estructurado con descripción o detalle de los Un documento estructurado con descripción o detalle de los
servicios del sistema. Escrito como un contrato entre el cliente servicios del sistema. Escrito como un contrato entre el cliente y el contratista.y el contratista.
Especificación de SoftwareEspecificación de Software Descripción detallada de software, la cual, puede servir como Descripción detallada de software, la cual, puede servir como
una base para diseño o implementación. Escrito para una base para diseño o implementación. Escrito para desarrolladores.desarrolladores.
Problemas DesagradablesProblemas Desagradables
Sistemas de Software grandes con problemas de Sistemas de Software grandes con problemas de direccionamiento.direccionamiento.
Problemas de tal manera complejos que puede ser que Problemas de tal manera complejos que puede ser que nunca se comprendan completamente y donde los nunca se comprendan completamente y donde los desarrolladores van comprendiendo el sistema desarrolladores van comprendiendo el sistema durante su desarrollodurante su desarrollo
Por lo tanto, los requerimientos son normalmente Por lo tanto, los requerimientos son normalmente incompletos e inconsistentes.incompletos e inconsistentes.
Razones de InconsistenciaRazones de Inconsistencia Los sistemas de software grandes deben mejorar Los sistemas de software grandes deben mejorar
su actual situación. Es difícil anticipar los efectos su actual situación. Es difícil anticipar los efectos que el sistema tendrá en la organización.que el sistema tendrá en la organización.
Usuarios diferentes tienen requerimientos y Usuarios diferentes tienen requerimientos y prioridades diferentes. Hay constantemente prioridades diferentes. Hay constantemente compromiso de cambios en los requerimientos.compromiso de cambios en los requerimientos.
Los usuarios finales del sistema y la organización Los usuarios finales del sistema y la organización que paga por el sistema tienen requerimientos que paga por el sistema tienen requerimientos diferentes.diferentes.
Documento de RequerimientosDocumento de Requerimientos
Es la declaración oficial de lo que es requerido para Es la declaración oficial de lo que es requerido para que el sistema sea desarrollado.que el sistema sea desarrollado.
Incluye la definición y especificación de Incluye la definición y especificación de requerimientos.requerimientos.
No es un documento de diseño. Tanto como sea No es un documento de diseño. Tanto como sea posible, es un conjunto de lo que es el sistema y posible, es un conjunto de lo que es el sistema y como lo hará.como lo hará.
Documento de RequerimientosDocumento de Requerimientos
Especificación de la conducta externa del sistema.Especificación de la conducta externa del sistema. Especificar los límites de la implementación.Especificar los límites de la implementación. Fácil de cambiar.Fácil de cambiar. Sirve como una herramienta de referencia para Sirve como una herramienta de referencia para
mantenimiento.mantenimiento. Recuerda el ciclo de vida del sistema, esto es, predice Recuerda el ciclo de vida del sistema, esto es, predice
cambios.cambios. Proporciona respuestas características a un evento no Proporciona respuestas características a un evento no
esperado.esperado.
Estructura del Documento de Estructura del Documento de RequerimientosRequerimientos
Introducción.Introducción.Describe la necesidad de crear el sistema y cuales son Describe la necesidad de crear el sistema y cuales son
sus objetivos.sus objetivos. Glosario.Glosario.
Define los términos técnicos usados.Define los términos técnicos usados. Modelos del Sistema.Modelos del Sistema.
Define los modelos que muestran los componentes del Define los modelos que muestran los componentes del sistema y las relaciones entre ellos.sistema y las relaciones entre ellos.
Definición de Requerimientos Funcionales.Definición de Requerimientos Funcionales.
Estructura del Documento de Estructura del Documento de RequerimientosRequerimientos
Definición de Requerimientos No-funcionales.Definición de Requerimientos No-funcionales. Evolución del Sistema.Evolución del Sistema.
Definir las suposiciones fundamentales en las cuales el sistema Definir las suposiciones fundamentales en las cuales el sistema se basa y se anticipan los cambios.se basa y se anticipan los cambios.
Especificación de Requerimientos.Especificación de Requerimientos. Especificación detallada de los requerimientos funcionales del Especificación detallada de los requerimientos funcionales del
sistema.sistema. Apéndices.Apéndices.
Descripción de la plataforma de Hardware del Sistema.Descripción de la plataforma de Hardware del Sistema. Requerimientos de la base de Datos (quizá como un modelo ER)Requerimientos de la base de Datos (quizá como un modelo ER)
Indice.Indice.
Identificación de RequerimientosIdentificación de RequerimientosPreguntar al cliente, a los usuarios y a los que están involucrados en Preguntar al cliente, a los usuarios y a los que están involucrados en los objetivos del sistema o producto y sean expertos, investigar los objetivos del sistema o producto y sean expertos, investigar como los sistemas o productos se ajustan a las necesidades del como los sistemas o productos se ajustan a las necesidades del negocio, y finalmente, cómo el sistema o producto va a ser utilizado negocio, y finalmente, cómo el sistema o producto va a ser utilizado en el día a día.en el día a día.
Una relación de necesidades y característicasUna relación de necesidades y características
Un informe del alcance del sistemaUn informe del alcance del sistema
Una lista de clientes, usuarios y otros intervinientesUna lista de clientes, usuarios y otros intervinientes
Escenarios que permiten ver al sistema o producto bajo Escenarios que permiten ver al sistema o producto bajo diferentes condiciones operativas.diferentes condiciones operativas.
Análisis y Negociación de RequisitosAnálisis y Negociación de Requisitos
Una vez recopilados, los requisitos se agrupan Una vez recopilados, los requisitos se agrupan por categorías y se organizan en subconjuntos, por categorías y se organizan en subconjuntos, se estudia cada requisito en relación con el se estudia cada requisito en relación con el resto.resto.
Utilizando un proceso iterativo, se irán Utilizando un proceso iterativo, se irán eliminando requisitos, se irán combinando y/o eliminando requisitos, se irán combinando y/o modificando para conseguir satisfacer los modificando para conseguir satisfacer los objetivos planteados.objetivos planteados.
Validación de RequerimientosValidación de Requerimientos Demostración de que los requerimientos que definen Demostración de que los requerimientos que definen
el sistema son lo que el cliente realmente quiere.el sistema son lo que el cliente realmente quiere. Los costos de errores en los requerimientos son Los costos de errores en los requerimientos son
altos, por lo cual, la validación es muy importantealtos, por lo cual, la validación es muy importante..Fijar un error de requerimiento después del Fijar un error de requerimiento después del
desarrollo puede resultar en un costo 100 veces desarrollo puede resultar en un costo 100 veces mayor que fijar un error en la implementación.mayor que fijar un error en la implementación.
El Prototipado es una técnica importante de la El Prototipado es una técnica importante de la validación de requerimientos.validación de requerimientos.
Chequeando RequerimientosChequeando Requerimientos
Validación. Provee al sistema las funciones que mejor Validación. Provee al sistema las funciones que mejor soporten las necesidades del cliente?soporten las necesidades del cliente?
Consistencia. Existe cualquier conflicto en los Consistencia. Existe cualquier conflicto en los requerimientos?requerimientos?
Completo. Están incluidas todas las funciones Completo. Están incluidas todas las funciones requeridas por el cliente?requeridas por el cliente?
Realismo. Pueden los requerimientos ser Realismo. Pueden los requerimientos ser implementados con la tecnología y el presupuesto implementados con la tecnología y el presupuesto disponible?disponible?
Revisión de RequerimientosRevisión de Requerimientos
Una revisión regular puede ayudar mientras la Una revisión regular puede ayudar mientras la definición de requerimientos está siendo hecha.definición de requerimientos está siendo hecha.
Tanto el cliente como el usuario y todas las personas Tanto el cliente como el usuario y todas las personas relacionadas deben estar involucrados en la revisión.relacionadas deben estar involucrados en la revisión.
La revisión debe ser formal (con los documentos La revisión debe ser formal (con los documentos completos) o informal. Una buena comunicación completos) o informal. Una buena comunicación entre desarrolladores, clientes y usuarios puede entre desarrolladores, clientes y usuarios puede resolver problemas en las primeras etapas.resolver problemas en las primeras etapas.
Chequeo de la RevisiónChequeo de la Revisión
Verificabilidad. Es el Requerimiento realmente Verificabilidad. Es el Requerimiento realmente probable?probable?
Entendibilidad. Es el Requerimiento Entendibilidad. Es el Requerimiento comprendido propiamente?comprendido propiamente?
Probabilidad. Es el origen de los requerimientos Probabilidad. Es el origen de los requerimientos claramente establecido?claramente establecido?
Adaptabilidad. Puede el requerimiento ser Adaptabilidad. Puede el requerimiento ser cambiado sin causar un gran impacto en otros cambiado sin causar un gran impacto en otros requerimientos?requerimientos?
Evolución de RequerimientosEvolución de Requerimientos
Los requerimientos siempre involucran como Los requerimientos siempre involucran como comprender mejor el desarrollo de las comprender mejor el desarrollo de las necesidades de los usuarios y como los necesidades de los usuarios y como los objetivos de la organización pueden cambiar.objetivos de la organización pueden cambiar.
Es esencial planear posibles cambios en los Es esencial planear posibles cambios en los requerimientos cuando el sistema sea requerimientos cuando el sistema sea desarrollado y utilizado.desarrollado y utilizado.
Evolución de RequerimientosEvolución de Requerimientos
Comprensión Inicialdel Problema
Comprensión de losCambios del Problema
RequerimientosIniciales
Cambios en losRequerimientos
Tiempo
Cambios en el Documento de Cambios en el Documento de RequerimientosRequerimientos
El documento de requerimientos debe ser organizado, El documento de requerimientos debe ser organizado, de tal forma que los cambios en los requerimientos de tal forma que los cambios en los requerimientos puedan ser hechos sin tener que re-escribir demasiado.puedan ser hechos sin tener que re-escribir demasiado.
Las referencias externas deben ser minimizadas y las Las referencias externas deben ser minimizadas y las secciones del documento deben ser tan modulares como secciones del documento deben ser tan modulares como sea posible.sea posible.
Los cambios son fáciles cuando se trata de un Los cambios son fáciles cuando se trata de un documento electrónico. Sin embargo, la falta de documento electrónico. Sin embargo, la falta de estándares para documentos electrónicos lo hace estándares para documentos electrónicos lo hace difícil. difícil.
ResumenResumen Los errores en los requerimientos son usualmente Los errores en los requerimientos son usualmente
muy caros de corregir una vez desarrollado el muy caros de corregir una vez desarrollado el sistema.sistema.
La revisión debe involucrar al cliente y a todas las La revisión debe involucrar al cliente y a todas las personas involucradas para validar los personas involucradas para validar los requerimientos del sistema.requerimientos del sistema.
El establecer requerimientos está relacionado con las El establecer requerimientos está relacionado con las actividades del cliente para el Software.actividades del cliente para el Software.
El Documento de Requerimientos es una descripción El Documento de Requerimientos es una descripción para clientes y desarrolladores.para clientes y desarrolladores.