Você está na página 1de 13

Fundamentos de ingeniera de Software

Unidad II Ingeniera de requisitos 2.1 Ingeniera de requisitos


Comprende todas las tareas relacionadas con la determinacin necesidades o de las condiciones a satisfacer para un software tomando en cuenta los diversos requerimientos de los inversores Esta facilita: comprender lo que quiere el cliente analizando la solucin validando la especificacin gestin de los requerimientos

Para que se transformen en un sistema operacional

2.1.2 Que es un requerimiento


Una condicin o necesidad de un usuario para resolver un problema o alanzar un objetivo [IEEE2006] Una condicin o capacidad que debe estar presente en un sistema o componentes de sistema para satisfacer un contrato, estndar, especificacin u otro documento formal [IEEE2006] Un requerimiento es simplemente una declaracin abstracta de alto nivel de un servicio que debe proporcionar el sistema o una restriccin de este [SOM2005]

Requerimiento Podemos decir que es una descripcin de la capacidad que debe cumplir un sistema, ya sea derivado de una necesidad, una especificacin o un documento formal mente impuesto al inicio del proceso Requerimientos del sistema

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Descripcin detallada de las funciones, servicios y sistema.

restricciones operativas del

Es un punto de partida para el diseo del sistema. Los requerimientos del software se dividen en: Requerimientos funcionales: Servicios que proveer el sistema. La manera en reaccionar ante entradas particulares y de cmo se comportara en situaciones particulares. Requerimientos no funcionales: Restricciones de los servicios o funciones ofrecidas por el sistema. Son propiedades que debe tener el sistema (software) como por ejemplo: la fiabilidad, el tiempo de respuesta entre otros (investigar sobre la clasificacin de requerimientos no funcionales).

Caractersticas de un requerimiento Verificable: Cmo se sabe si se cumpli con l o no? Conciso: Redaccin simple y clara Completo: Proporciona la informacin suficiente para su comprensin. Consistente: No debe ser contradictorio con otros requerimientos No ambiguo: El lenguaje usado en su definicin, no debe causar confusin al lector.

2.1.2 Ingeniera de Requerimientos


El proceso de recopilar, analizar y verificar las necesidades del cliente o usuario para un sistema. La meta es entregar una especificacin de los requisitos de software correcta y completa

2.1.3 Importancia de IR
Permite gestionar las necesidades del proyecto en forma estructurada Controles subsecuentes y actividades de mantenimiento, estimacin de costos, tiempo y recursos necesarios. Disminuye los costos y retrasos del proyecto Mejora la calidad del software (funcionalidad, facilidad de uso, confiabilidad, etc.)
Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Mejora la comunicacin entre clientes y desarrolladores Obliga al cliente a considerar sus requerimientos cuidadosamente y revisarlos dentro del marco del problema

2.1.4 Tareas de la ingeniera de requerimientos


Existen cuatro actividades bsicas, esta ayuda a reconocer la importancia que tiene para el desarrollo de un proyecto de software realizar una especificacin y administracin adecuada de los requerimientos de los clientes o usuarios. 1.- Extraccin: Son las actividades involucradas en el descubrimiento de los requerimientos del sistema. Se trabajar junto al cliente para descubrir el problema que el sistema debe resolver, los deferentes servicios que debe prestar, las restricciones, etc. 2.- Anlisis: Se enfoca en descubrir problemas con los requisitos del sistema identificados hasta el momento. Se leen, conceptan, investigan, intercambian ideas con el resto del equipo, resaltan los problemas, se buscan alternativas y soluciones, y luego se van fijando reuniones con el cliente para discutir requeriremos. 3.- Especificaciones: Se documentan los requisitos acordados con el cliente, a un nivel de detalle apropiado. Es pasaren limpio el anlisis realizado previamente aplicando tcnicas y/o estndares de documentacin, como la notacin UML(Lenguaje de modelado unificado) 4.- Validacin: Su objetivo es, ratificar los requerimientos, asegurar que representen una descripcin, por lo menos, aceptable del sistema que se debe implementar, que sean consistentes y estn completos

2.2 Tcnicas de la Ingeniera de requerimientos


Existen varias tcnicas de las cuales solo referenciaremos cinco: Entrevistas y cuestionarios Sistemas existentes

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Lluvia de ideas Prototipos Casos de uso

Estas tcnicas pueden ser aplicables a las distintas fases del proceso, tomando en cuenta las caractersticas de cada proyecto en particular

Entrevistas y cuestionarios Se emplean para reunir informacin proveniente de personas o grupos Entrevista (Formales e informales), en estas se hacen preguntas sobre el sistema que utilizan y sobre el sistema a desarrollar. 1. Interrogacin estandarizada 2. Conversacin libre donde no hay un programa definido. Nota: Normalmente son una mezcla, ya que las respuestas a algunas preguntas pueden conducir a otras cuestiones que se discuten de una manera menos estructurada. Cuestionario Es la forma de relacionarse con un gran nmero de personas. 1. Debe llevar el nombre del tema al inicio 2. El objetivo y un prembulo para quien va a contestar 3. No se tiene contacto con las personas que responden, esto asegura respuestas ms honestas 4. Las preguntas pueden ser abiertas (sentimientos, opiniones y experiencias personales), 5. Las preguntas cerradas (limita las respuestas posibles) 6. Mixtas (de los dos tipos). Sistemas Existentes Consiste en analizar distintos sistemas ya desarrollados que estn relacionados con el sistema a construir.

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Analizar Las interfaces (tipo de informacin y forma de manipulacin) Anlisis de las salidas (Listados, consultas, etc.)

Lluvia de Ideas Busca establecer la mxima cantidad posible de requerimientos para el sistema, sin importar si esta son o no tiles del todo. Busca tener muchas ideas, que despus se irn descartando, pro, ejemplo por caro, imprctico, imposible, etc. Reglas: Los participantes deben pertenecer a distintas disciplinas Conviene suspender el juicio crtico y debe permitir la evolucin de cada idea Por locas que parezcan, no se deben descartar Abecs ocurre que una idea resulta en otra, y abecs varias generan una nueva Escribir las ideas sin censura

Observacin (Escenarios) Las personas encuentran ms fcil dar ejemplos de la vida real que descripciones abstractas. Pueden comprender y criticar un escenario, de cmo podra interactuar con un sistema de software. Pueden ser tiles para agregar detalles a un esbozo de la descripcin de requerimientos. Estos comienzan con un esbozo de la interaccin y, durante la observacin, se agregan detalles para crear una descripcin completa de esta interaccin. Revisin de documentos Recopilacin y estudio de los documentos de la empresa para el desarrollo del Sistema. 1. Facturas 2. rdenes de compra 3. Polticas y procedimientos

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

4. Reportes Prototipos Puede ocurr que algn requerimiento no quede claro o haberse comprendido, entonces para validar estos, se construyen prototipos. Estos son simuladores del posible producto, que luego son utilizados por el usuario final, permitiendo nos una retroalimentacin si el diseo permite al usuario realizar su trabajo de manera eficiente y efectiva. Inicia con: Recoleccin de requisitos Diseo rpido

Caso de uso: Documento narrativo que describe la secuencia de eventos de un actor (agentes externos) que utiliza un sistema para completar un proceso. Son casos de utilizacin del sistema No son los requerimientos ni las especificaciones Son ejemplificaciones en las que se Incluyen los requerimientos en la narracin

2.3 Modelado de requisitos


Ciertos aspectos de los requisitos se expresan mediante modelos de datos, de control, de estados, de interaccin, de objetos, etc. La meta es entender mejor el problema, ms que iniciar el diseo de la solucin (idealmente), el tipo de modelo elegido depende de: La naturaleza del problema La experiencia del modelizador La disponibilidad de herramientas Por decreto. El cliente impone una notacin

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Por otro lado, no existe la mejor forma de modelizar requisitos. En realidad, no hay evidencia emprica que demuestre, en general, la superioridad de unas notaciones de modelizacin frente a otras.

La comprensin de los requerimientos, es necesario comprender los procesos y ambiente externo que participan en los proceso. Esto lo podemos describir con una narracin del proceso con un formato estructurado Caso de uso Documento narrativo que describe la secuencia de eventos de un actor (agentes externos) que utiliza un sistema para completar un proceso. Son casos de utilizacin del sistema, No son los requerimientos ni las especificaciones, Son ejemplificaciones en las que se incluyen los requerimientos en la narracin Errores en los casos de uso La identificacin de los pasos, operaciones o transacciones individuales como casos de uso Por ejemplo: En el dominio de la TPV, podemos definir (Incorrectamente) un caso denominado imprimir el recibo, cuando en realidad es una operacin que es parte de un proceso ms amplio compra productos. Nota: los caos son descripciones completas de principio a fin relativamente amplio, que abarca muchos pasos o transacciones, no es una actividad o paso individual Caso de uso formato de Alto Nivel Este describe un proceso muy brevemente, en dos o tres enunciados 1. Usado durante el examen de requerimientos y el proyecto 2. Permite conocer rpido el grado de complejidad y funcionalidad 3. Son muy concisos y vagos en las decisiones del diseo

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Ejemplo: caso de uso de alto nivel que descebe el proceso de compra de un artculo en una tienda cuando de emplea una terminal punto de venta (TPV)

Caso de uso formato Expandido Describe un proceso ms a fondo que el de alto nivel. La diferencia bsica consiste en que tiene una seccin destinada a curso normal de eventos, que los descebe paso a paso Usados en la especificacin de requerimientos en los ms importantes Los menos importantes pueden realizarse en la etapa de desarrollo

Ejemplo: Caso de uso de alto nivel que descebe el proceso de compra de un artculo en una tienda cuando de emplea una terminal punto de venta (TPV)

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Explicacin de formato expandido Caso de uso: Se da comenzando con un verbo, para identificar que es un proceso Actores: Lista de agentes externos, en la cual se identificas quien inicia el caso Propsito: Objetivo del caso Resumen: Sntesis de caso Tipo: 1- primario o secundario 2- esencial o real Referencias: casos y funciones relacionadas Curso normal de eventos: detalla la iteracin de los actores con el sistema Cursos alternativos: Alternativas que pueden suceder en el numero de una lnea

Tipos de casos: 1. Primarios : Representan los procesos comunes mas importantes (compra de productos)

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

2. Secundarios: Representan procesos menos importantes (sol de resurtir producto) 3. Opcionales: representan proseos que pueden no abordarse 4. Esenciales: escribe el proceso a partir de sus actividades y motivos esenciales. 5. Reales: describe su proceso a partir de su diseo actual, sujeto a la tecnologas de e/s

2.4. Herramientas CASE para la Ingeniera de requisitos (IR)


En la actualidad los sistemas informticos se caracterizan por su complejidad, eficacia e importancia estratgica. En este confuso contexto de especificacin de software, crear documentacin de alta calidad es complicado. Es frecuente los clientes no saben con claridad lo que desean y muchas veces los requisitos no reflejan las necesidades del clientes. Es comn tropezar con requerimientos inconsistentes e incompletos. En este contexto, uno de los grandes desafos est en la necesidad de constituir los requisitos organizacionales y funcionales del software que ser desarrollado.

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

La IR es en esencia la aplicacin de principios, mtodos, tcnicas y herramientas en pro del descubrimiento de los requisitos de un producto software; de igual manera, permite el anlisis y documentacin de los objetivos, funciones y restricciones de dicho sistema de computacin, pero presenta una falencia: no hay acuerdo sobre lenguajes, mtodos y herramientas, para su ejecucin Es decir al proceso de identificacin, asignacin y seguimiento de los mismos, incluyendo interfaz, verificacin, modificacin y control de cada requisito, durante el ciclo de vida del proyecto. Los cambios/actualizaciones de requisitos deben ser gestionados para asegurar que se mantenga la calidad del producto. Hasta hace poco tiempo las herramientas para la gestin de requisitos de software se limitaban a editores de texto, los cuales hacan de esta tarea una labor tediosa y confusa. Actualmente, se cuenta con mltiples opciones La ingeniera de requisitos es una tarea que an tiene mucho por explorar para optimizar sus tareas y cumplir a cabalidad los objetivos propuestos.

IRQA4 Herramienta CASE de ingeniera de requisitos, diseada para soportar las actividades realizadas en el proceso de especificacin del sistema Facilita y formaliza la comunicacin (cliente, proveedor y equipo desarrollo) Facilita la captura, organizacin y anlisis de requisitos y especificaciones Se apoya en metodologa adaptable a cada cliente

Osrmt (open source requerements management tool) Herramienta libre para gestin de requisitos, algunas de sus principales caractersticas es: Trabaja en arquitectura cliente/servidos Desarrollado bajo Java La versin 1.3 trae un mdulo para manejar la rastreabilidad de los requisitos Introduce modulo para el control de cambios

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Genera la documentacin de los requisitos tratados Aunque tiene una interfaz agradable, le falta madurar algunos aspectos. Jerema Se trata de una aplicacin cliente exclusivamente, lo cual no permite la posibilidad de trabajar en equipo. Esta herramienta ayuda durante el desarrollo del sistema, especficamente con el seguimiento de cambios de los requisitos a lo largo del ciclo de vida. Capta las necesidades, las analiza y califica Implementa un mdulo orientado a la generacin de documentacin posible de exportar en formato docbook XML Los requisitos y documentos se almacenan en una base de datos de MySQL Rambutan Eta herramienta es bsicamente en XML, realmente consta de un conjunto de aplicaciones para usuario final ayudando a los analistas de sistemas en la recopilacin y categorizacin de hechos en un documento de especificacin de requisitos. Tiene un cliente palm )(PDA), el cual se utiliza para recopilar los hechos en el lugar donde est ubicado el cliente La aplicacin de escritorio recibe la informacin, edita y perfecciona los requisitos Ambas aplicaciones permite introducir, modificar y visualizar los datos que componen un documento de especificacin de requisitos Otras herramientas (ARTS), CARE 3.2, CORE 5.1, Cradle 5.2, Envision VIP, Gatherspace, IBM Rational RequisitePro, KollabNet Editor 2005, PACE, RaQuest 3.0, RMTrak, RTM, SLATE REquire 6.5, SoftREQ, UGS Teamcenter 2005, truereq product desktop, XTie-RT, Specification Analysis Tool (SAT), ECM, Banyan2.2, Contour, Projectricity 3.5, FeaturePlan 2.6, analyst pro, ChangeWare 2.0, aligned elements, Dassault Systemes CSE 4.0, Polarion ALM for Subversion 3.0, Telelogic DOORS, Accept 360.

Instituto Tecnolgico de Chihuahua II

Fundamentos de ingeniera de Software

Siglas ms comunes en ingeniera de software


IR ingeniera de requerimientos UML Lenguaje de modelado unificado

Referencias: http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5040/TECN02.HTM http://es.scribd.com/doc/454427/39/Tecnologias-de-desarrollo-estructurado Andrea Alarcon, Erika Sandoval, Herramientas CASE para ingeniera de Requisitos, http://www.revistasjdc.com/main/index.php/ccient/article/view/37, 2008 Bibliografia

Alfredo Weitzenfeld, Ingenieria de Software Orientada a Objetos Con Uml, Java E Internet, Ed Thomson
[BOE81] Boehm, B., SofrYt9ar-e Engineering Economics, Prentice-Hall, 1981. [LEO96] Len, G, S., Ingeniera de Sistemas de Software, Isdefe,1996. [IEEE2006] IEEE Glossary of software Enegoneering Terminilogy, 2006, http://standards.ieee.org/reading/ieee/std_public/description/se/610.121900_desc.html [SOM2005] Sommerville lan, 2005, Ingenieria de software, 7 Edicion, Mexico, DF, Ed Pearson. [HER2003] Herrera J., Lizka J., 2003, Ingieneria de requerimientos, Ingenieria de software,Recuperado el 25 de mayo de 2006. en: http://www.monografias.com/trabajos6/resof/resof.shtml [KEN2009] KennethKendall & Julie Kendall,2009, Anlisis y diseo de sistemas, 3 Edicin, Prentice-Hall

Instituto Tecnolgico de Chihuahua II

Você também pode gostar