La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Ingeniería de Requisitos

Presentaciones similares


Presentación del tema: "Introducción a la Ingeniería de Requisitos"— Transcripción de la presentación:

1 Introducción a la Ingeniería de Requisitos
Ing. Patricio Quiroz

2 Definiciones importantes
Ingeniería.- Conjunto de Conocimientos y Técnicas científicas, empíricas y prácticas aplicadas a la invención, el diseño, el desarrollo, la construcción, el mantenimiento y perfeccionamiento de tecnologías, estructuras, máquinas, herramientas, sistemas, materiales y procesos para la resolución de problemas prácticos.

3 Software Conjunto de elementos lógicos que hacen posible que las tareas para las que han sido diseñado, operen de forma correcta(Sommerville, 2005) o Software es un término informático que hace referencia a un programa o conjunto de programas de cómputo, así como datos, procedimientos y pautas que permiten realizar distintas tareas en un sistema informático. o Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas de una computadora (RAE, 2001).

4 Ingeniería de software
Disciplina de la ingeniería que cubre todos los aspectos para la producción de software (Sommerville, 2005) o El establecimiento y uso de principios de ingeniería robustos, orientados a obtener económicamente software que sea fiable y funcione eficientemente sobre máquinas reales. (F. Bauer Conferencia de la OTAN, El enfoque sistemático para el desarrollo, operación, mantenimiento y eliminación del software, definiendo como software los programas, 1969). procedimientos, reglas y documentación, así como los datos de operación de un sistema de cómputo. ( Glosario IEEE 198) o Esa forma de ingeniería que aplica los principios de la informática y las matemáticas para conseguir soluciones rentables a problemas software (Software Engineering Institute (SEI) 1990)

5 Requerimiento Los requerimientos para un sistema son descripciones de lo que el sistema debe hacer: el servicio que ofrece y las restricciones en su operación. Tales requerimientos reflejan las necesidades de los clientes por un sistema que atienda cierto propósito, como sería controlar un dispositivo, colocar un pedido o buscar información. Al proceso de descubrir, analizar, documentar y verificar estos servicios y restricciones se le llama ingeniería de requerimientos (IR). El término “requerimiento” no se usa de manera continua en la industria del software. En algunos casos, un requerimiento es simplemente un enunciado abstracto de alto nivel en un servicio que debe proporcionar un sistema, o bien, una restricción sobre un sistema (Ian Sommerville, 2011)

6 Las siguientes son algunas definiciones dadas por diferentes autores:
• Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo”. (Std , IEEE: 62) • “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”.(Std , IEEE) • “Un requerimiento es simplemente una declaración abstracta de alto nivel de un servicio que debe proporcionar el sistema o una restricción de éste”. (Sommerville, 2005: 108) • Es una responsabilidad del software que debe cumplir para alcanzar los objetivos del sistema definidos en un contrato u otro documento (Dorfman y Thayer, 1990).

7 Importancia de los Requerimientos en el desarrollo de un sistema
➢ Si un producto no es lo que el cliente o los usuarios quieren, entonces la calidad de la construcción es irrelevante. ➢ El rol clave de los requerimientos es mostrar a los desarrolladores y usuarios que se necesita de un sistema. Proveer los requerimientos forma parte de un lenguaje que todos comprenden, ya que todos están involucrados, incluyendo los clientes ➢ El primer y básico rol de los requerimientos es por lo tanto la comunicación

8 Características que debe cumplir un requerimiento
➢ No ambiguo: El texto debe ser claro, preciso y tener una única interpretación posible. ➢ Conciso: Debe redactarse en un lenguaje comprensible por los inversores en lugar de uno de tipo técnico y especializado, aunque aun así debe referenciar los aspectos importantes. ➢ Consistente: Ningún requisito debe entrar en conflicto con otro requisito diferente, ni con parte de otro. Asimismo, el lenguaje empleado entre los distintos requisitos debe ser consistente también. ➢ Completo: Los requisitos deben contener en sí mismos toda la información necesaria, y no remitir a otras fuentes externas que los expliquen con más detalle. ➢ Alcanzable: Un requisito debe ser un objetivo realista, posible de ser alcanzado con el dinero, el tiempo y los recursos disponibles. ➢ Verificable: Se debe poder verificar con absoluta certeza, si el requisito fue satisfecho o no. Esta verificación puede lograrse mediante inspección, análisis, demostración o testeo. Para que los requerimientos queden bien definidos y expresen las necesidades reales que los usuarios esperan de un sistema deben cumplir algunas características

9 Obtención de Requisitos

10 Obtención de Requisitos
La extracción de requisitos de un sistema software es la primera y se podría decir que la más crítica de las tareas a realizar en todo proyecto, y a la que, curiosamente demasiadas veces no se gestiona adecuadamente, implementando en consecuencia aplicaciones de baja calidad con las que el cliente no se siente satisfecho. Existen varios procesos y técnicas para obtener requisitos que se analizarán más adelante en este curso.

11 Tareas de la IR? La ingeniería de requerimientos proporciona el mecanismo apropiado para entender lo que desea el cliente, analizar las necesidades, evaluar la factibilidad, negociar una solución razonable, especificar la solución sin ambigüedades, validar la especificación y administrar los requerimientos a medida de que se transforman en un sistema funcional, incluye siete tareas diferentes: concepción, indagación, elaboración, negociación, especificación, validación y administración. Es importante notar que algunas de estas tareas ocurren en paralelo y que todas se adaptan a las necesidades del proyecto (Pressman, 2010).

12 Tareas de las Ingeniería de Requisitos

13 ¿Qué es la Ingeniería de requisitos?
La Ingeniería de requisitos o Ingeniería de requerimientos comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software nuevo o modificado, tomando en cuenta los diversos requisitos de las partes interesadas, que pueden entrar en conflicto entre ellos (McConnell1996). Proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema de software.

14 Importancia de la Ingeniería de Requerimientos
Permite gestionar las necesidades del proyecto en forma estructurada: Cada actividad de la IR consiste de una serie de pasos organizados y bien definidos. Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados: La IR proporciona un punto de partida para controles subsecuentes y actividades de mantenimiento, tales como estimación de costos, tiempo y recursos necesarios.

15 Importancia de la Ingeniería de Requerimientos
Disminuye los costos y retrasos del proyecto: reparar errores por un mal desarrollo no descubierto a tiempo, es sumamente caro; especialmente aquellas decisiones tomadas durante la IR, ya que es una de las etapas de mayor importancia en el ciclo de desarrollo de Software y de las primeras en llevarse a cabo. Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requerimientos (funcionalidad, facilidad de uso, confiabilidad, desempeño, etc.).

16 Tipos de Requerimientos
Algunos de los problemas que surgen durante el proceso de ingeniería de requerimientos son resultado del fracaso de hacer una separación clara entre esos diferentes niveles de descripción. Ian sommerville (2011) hace una distinción con el uso del término “requerimientos del usuario” para representar los requerimientos abstractos de alto nivel; y “requerimientos del sistema” para caracterizar la descripción detallada de lo que el sistema debe hacer. Los requerimientos del usuario y los requerimientos del sistema se definen del siguiente modo:

17 Tipos de Requerimientos
Requerimientos del usuario .- Son enunciados, en un lenguaje natural junto con diagramas, acerca de qué servicios esperan los usuarios del sistema, y de las restricciones con las cuales éste debe operar. Requerimientos del sistema.- Son descripciones más detalladas de las funciones, los servicios y las restricciones operacionales del sistema de software. El documento de requerimientos del sistema (llamado en ocasiones especificación funcional) tiene que definir con exactitud lo que se implementará. Puede formar parte del contrato entre el comprador del sistema y los desarrolladores del software

18 Los diferentes niveles de requerimientos son útiles debido a que informan sobre el sistema a distintos tipos de lector. Nota: Revisar Ejemplo del libro Ingeniería de Software de Ian Somerville Novena edición, página 84

19 Ejemplo diferencia entre los requerimientos del usuario y del sistema
El ejemplo del del libro Ingeniería de Software de Ian Somerville Novena edición, ilustra la diferencia entre los requerimientos del usuario y del sistema. Este ejemplo de un sistema de administración de pacientes para apoyar la atención a la salud mental (MHC-PMS) muestra cómo los requerimientos del usuario se extienden hacia varios requerimientos del sistema. En la figura 4.1 (Sommerville, pag 84) se observa que el requerimiento del usuario es muy general. Los requerimientos del sistema ofrecen información más específica sobre los servicios y las funciones del sistema que se implementará

20 Es necesario escribir los requerimientos con diferentes niveles de detalle, ya que varios lectores los usarán de distintas formas.

21 Lectores de diferentes tipos de especificación de requerimientos

22 Definición y especificación de requerimiento de usuario y del sistema

23 Requerimiento de usuario y del sistema
De éstos, los primeros por lo general no están interesados en la manera en que se implementará el sistema, y quizá sean administradores a quienes no les atraigan las facilidades detalladas del sistema. Mientras que los segundos necesitan conocer con más precisión qué hará el sistema, ya que están preocupados sobre cómo apoyará los procesos de negocios o porque están inmersos en la implementación del sistema.

24 Requerimientos Funcionales y no funcionales
A menudo, los requerimientos del sistema de software se clasifican como requerimientos funcionales o requerimientos no funcionales:

25 Requerimientos Funcionales (RF)
Son enunciados acerca de servicios que el sistema debe proveer, de cómo debería reaccionar el sistema a entradas particulares y de cómo debería comportarse el sistema en situaciones específicas. En algunos casos, los requerimientos funcionales también explican lo que no debe hacer el sistema. Requerimientos Funcionales (RF)

26 Requerimientos Funcionales (RF)
Los requerimientos funcionales para un sistema refieren lo que el sistema debe hacer. Tales requerimientos dependen de: El tipo de software que se esté desarrollando. Los usuarios esperados del software Enfoque general que adopta la organización cuando se escriben los requerimientos. Requerimientos Funcionales (RF)

27 Requerimientos Funcionales (RF)
Al expresarse como requerimientos del usuario, los requerimientos funcionales se describen por lo general de forma abstracta que entiendan los usuarios del sistema. Sin embargo, requerimientos funcionales más específicos del sistema detallan las funciones del sistema, sus entradas y salidas, sus excepciones, etcétera. Requerimientos Funcionales (RF)

28 Requerimientos Funcionales (RF), ejemplo
Los requerimientos funcionales del sistema varían desde requerimientos generales que cubren lo que tiene que hacer el sistema, hasta requerimientos muy específicos que reflejan maneras locales de trabajar o los sistemas existentes de una organización. Por ejemplo, veamos algunos casos de requerimientos funcionales para el sistema MHC-PMS, que se usan para mantener información de pacientes que reciben tratamiento por problemas de salud mental: Requerimientos Funcionales (RF), ejemplo

29 Requerimientos Funcionales (RF), ejemplo.
Un usuario podrá buscar en todas las clínicas las listas de citas. El sistema elaborará diariamente, para cada clínica, una lista de pacientes que se espera que asistan a cita ese día. Cada miembro del personal que usa el sistema debe identificarse de manera individual con su número de ocho dígitos. Requerimientos Funcionales (RF), ejemplo.

30 Requerimientos Funcionales (RF) ¿Cómo redactarlos?
Deben estar redactados de tal forma que sean comprensibles para usuarios sin conocimientos técnicos avanzados (de Informática, se entiende), Deben especificar el comportamiento externo del sistema y evitar, en la medida de lo posible, establecer características de su diseño, deben priorizarse (al menos, se ha de distinguir entre requisitos obligatorios y requisitos deseables). Las interacciones más comunes que el usuario realiza con un sistema pueden agruparse en: entradas, procesos y salidas Requerimientos Funcionales (RF) ¿Cómo redactarlos?

31 Requerimientos Funcionales (RF) ¿Cómo redactarlos?

32 Ejemplos de requerimientos funcionales
El sistema enviará un correo electrónico cuando se registre alguna de las siguientes transacciones: pedido de venta de cliente, despacho de mercancía al cliente, emisión de factura a cliente y registro de pago de cliente. Se permitirá el registro de pedidos de compra con datos obligatorios incompletos, los cuales podrán completarse posteriormente modificando el pedido. Antes de poder aprobarse los datos del pedido deben estar completos. Al aprobar un pedido, la solicitud pasará al siguiente paso del flujo de trabajo (workflow) de aprobación configurado en el sistema La solución validara automáticamente el cliente asociado a una orden con el sistema de gestión de contactos. El campo de monto acepta únicamente valores numéricos con dos decimales. El campo fecha de transacción acepta únicamente fechas anteriores al día de hoy (día actual).

33 Ejemplos de requerimientos funcionales
El campo nombre acepta caracteres alfabéticos únicamente. El campo dirección acepta caracteres alfabéticos, numéricos y especiales. El campo país consistirá en una lista de preselección. El país asociado a una dirección debe ser previamente registrado en el sistema. El campo estado, provincia o departamento consistirá en una lista de preselección. A los usuarios se les presentará únicamente los estados asociados El sistema enviará una alerta al administrador del sistema cuando ocurra alguno de los siguientes eventos: Registro de nueva cuenta, ingreso al sistema por parte del cliente, 2 o más intentos fallidos en el ingreso de la contraseña de usuario y cambio de contraseña de usuario.

34 Requerimientos no funcionales (RNF)
Son limitaciones sobre servicios o funciones que ofrece el sistema. Incluyen restricciones tanto de temporización y del proceso de desarrollo, como impuestas por los estándares. Los requerimientos no funcionales se suelen aplicar al sistema como un todo, más que a características o a servicios individuales del sistema. Requerimientos no funcionales (RNF)

35 Requerimientos no funcionales (RNF)
Son requerimientos que no se relacionan directamente con los servicios específicos que el sistema entrega a sus usuarios. Pueden relacionarse con propiedades emergentes del sistema, como fiabilidad, tiempo de respuesta y uso de almacenamiento. De forma alternativa, pueden definir restricciones sobre la implementación del sistema, como las capacidades de los dispositivos I/O o las representaciones de datos usados en las interfaces con otros sistemas Los requerimientos no funcionales surgen a través de necesidades del usuario, debido a restricciones presupuestales, políticas de la organización, necesidad de interoperabilidad con otro software o sistemas de hardware, o factores externos como regulaciones de seguridad o legislación sobre privacidad. Requerimientos no funcionales (RNF)

36 Los requerimientos no funcionales pueden agruparse en 3 grupos

37 Requerimientos externos
Requerimientos externos.- Este término cubre todos los requerimientos derivados de factores externos al sistema y su proceso de desarrollo. En ellos se incluyen requerimientos regulatorios que establecen lo que debe hacer el sistema para ser aprobado en su uso por un regulador, como sería un banco central; requerimientos legislativos que tienen que seguirse para garantizar que el sistema opere conforme a la ley, y requerimientos éticos que garanticen que el sistema será aceptable para sus usuarios y el público en general. Requerimientos del producto .- Estos requerimientos especifican o restringen el comportamiento del software. Los ejemplos incluyen requerimientos de rendimiento sobre qué tan rápido se debe ejecutar el sistema y cuánta memoria requiere, requerimientos de fiabilidad que establecen la tasa aceptable de fallas, requerimientos de seguridad y requerimientos de usabilidad. Requerimientos de la organización.- Son requerimientos de sistemas amplios, derivados de políticas y procedimientos en la organización del cliente y del desarrollador. Los ejemplos incluyen requerimientos del proceso operacional que definen cómo se usará el sistema, requerimientos del proceso de desarrollo que especifican el lenguaje de programación, estándares del entorno o el proceso de desarrollo a utilizar , y requerimientos ambientales.

38 Clasificación de RNF

39 A continuación algunos ejemplos de requerimientos no funcionales:
El sistema debe contar con manuales de usuario estructurados adecuadamente. El sistema debe proporcionar mensajes de error que sean informativos y orientados al usuario final. El sistema debe contar con un módulo de ayuda en línea. El sistema será desarrollado para las plataformas PC y Macintosh. La aplicación debe ser compatible con todas las versiones de Windows, desde Windows 95. La aplicación deberá consumir menos de 500 Mb de memoria RAM. A continuación algunos ejemplos de requerimientos no funcionales:

40 Más ejemplos de requerimientos no funcionales:
La aplicación no podrá ocupar más de 2 GB de espacio en disco. El nuevo sistema se acogerá a las reglas de las licencias generales públicas (GNU), es decir será gratuito, código abierto en el que cualquiera podrá cambiar el software, sin patentes y sin garantías. Las páginas web a ser desarrolladas deben cumplir con la ley de tratamiento en condiciones de igualdad para personas con discapacidad.

41 ¿Cómo distinguir entre RF y RNF?
En realidad, la distinción entre los diferentes tipos de requerimientos no es tan clara como sugieren estas definiciones sencillas. Un requerimiento de un usuario interesado por la seguridad, como el enunciado que limita el acceso a usuarios autorizados, parecería un requerimiento no funcional. Sin embargo, cuando se desarrolla con más detalle, este requerimiento puede generar otros requerimientos que son evidentemente funcionales, como la necesidad de incluir facilidades de autenticación en el sistema.

42 Taller 1 Analice la plataforma, aula virtual de la universidad y elabore una lista de requerimientos que cumple clasificados en: Requerimientos funcionales. Requerimientos no funcionales. INDICACIONES Hacerlo en parejas o individualmente. Utilizar el formato indicado en clase. Llenar el formato a mano con letra legible. Presentar la tarea la próxima clase.


Descargar ppt "Introducción a la Ingeniería de Requisitos"

Presentaciones similares


Anuncios Google