Está en la página 1de 10

INGENIERIA DE REQUERIMIENTOS

OSCAR RAMIREZ

UNIMINUTO CERES APULO-ALTO MAGDALENA SEPTIMO SEMENSTRE INGENIERIA DE SOFTWARE 2012

INGENIERIA DE REQUERIMIENTOS

OSCAR RAMIREZ TUTOR: EFRAIN MASMELA

UNIMINUTO CERES APULO-ALTO MAGDALENA SEPTIMO SEMENSTRE INGENIERIA DE SOFTWARE 2012

RESUMEN En este ensayo se tratan los aspectos relacionados con la ingeniera de requerimientos, su importancia y algunos de sus factores de importancia, as como los procesos para llevar a cavo adecuadamente el desarrollo de requerimientos de un proyecto de software. INTRODUCCION La ingeniera de requerimientos es una disciplina muy importante en el desarrollo de software, pero es subestimada por algunas organizaciones o individuas por lo cual muchos proyectos de software se condenan al fracaso por no conocer las necesidades de los clientes y usuarios de los productos software obtenidos. Es de primordial conocer a ciencia cierta que es necesario para una organizacin x determinar el problema, y de acuerdo a los requerimientos y restricciones generar las soluciones a los problemas hallados. INGENIERIA DE REQUERIMIENTOS Esta es una rama de la ingeniera de software que es muy importante pero poco apreciada, no es una disciplina muy antigua, se encarga de capturar e identificar los requerimientos, mas precisamente se define como a ciencia y la disciplina de identificar, documentar, verificar y administrar los requerimientos de un sistema, a tenido un gran auge en los ltimos tiempos debido a la importancia de los requerimientos en el xito o fracaso de los proyectos de software. Se pueden distinguir los requerimientos de sistema y los requerimientos de software, en los primeros se convierten las necesidades de los clientes y usuarios en requerimientos de sistema, en los segundos se dividen los problemas en subsistemas de los cuales se van generando especificaciones detalladas y optimizadas para quienes disean y construyen el sistema. Segn un esquema de pirmide en la parte de arriba se encuentran las necesidades del cliente y los usuarios, que es donde se identifica la necesidad y basado en ello se generan proyectos para solucionar el problema, haciendo viable la compra o generacin de software que cumpla la tarea. En este caso se hace una clara distincin entre el cliente y los usuarios, los clientes son clientes encargan el desarrollo del software o lo compran como pueden ser el dueo de la empresa o el gerente de algn departamento de la empresa que compra el producto pero no tienen interaccin directa con el mismo, los usuarios por su parte son quienes interactan directamente con el software. En medio se encuentra la funcionalidad que se encarga de brindar las herramientas para solucionar o satisfacer las necesidades del cliente y los

usuarios, las necesidades y la funcionalidad van ligadas por lo cuan las funciones deben poder ser debatidas en un lenguaje claro y entendible con los usuarios y el cliente para llegar a un comn acuerdo de su significado. Los requerimientos del software van en la base de la pirmide, se derivan de las funcionalidades, siendo estos muy especficos tanto como para poder derivar cdigo a parir de los mismos, los requerimientos de software son capacidades que se han de tener para satisfacer estndares o lograr cumplir con ciertas tareas, contratos, especificaciones. Los requerimientos son fundamentales para los proyectos de software estos proporcionan: Permite establecer acuerdos entre desarrolladores, clientes, usuarios sobre los criterios de aceptacin del producto terminado. Establecer una base de estimacin del proyecto (tiempo, costo, recursos) Mejora las caractersticas del producto final (usabilidad, desempeo, mantenimiento etc.) Alcanzar objetivos con la calidad optima La obtencin de requerimientos no es un proceso sin importancia hay que darle la importancia que merece puesto que por errores en este proceso esta demostrado que gran parte de los fracasos en proyectos de software se producen, generalmente por que para ciertas organizaciones la identificacin de los requerimientos es algo meramente trivial, esto se puede generar por: Presin de los clientes para no pagar el tiempo de obtencin de requerimientos, escudados en que los importante esta en la programacin Poca colaboracin del cliente para constatar que los requerimientos hallados son adecuados Subestimas la importancia de los requerimientos en el proyecto Falta de entrenamiento de los encargados de identificar los requerimientos Colocar personal con poca experiencia y conocimiento a generar software en plazas de gran importancia generando fallos fatales para el proyecto A medida que un sistema es mas complejo ms difcil se hace el especificar requerimientos, por ello se necesita adoptar una disciplina que ayude a afrontar el desarrollo de requerimientos. La ingeniera de requerimientos se debe enfocar en resolver las siguientes preguntas: Cmo deben desarrollarse los requerimientos de un sistema?, Cmo podemos evaluar que los requerimientos de un sistema estn completos?, Qu estndares, herramientas y mtodos pueden ayudar con el problema de los requerimientos? La ingeniera de requerimientos no solo

especifica los requerimientos, tambin investiga la mejor manera de resolverlos. Hay un modelo propuesto por Dorfman que es el siguiente: Elisitacion: en este proceso el cliente y el analista se renen para estudiar e identificar las necesidades del cliente y los usuarios y ver las restricciones que haya. Anlisis: es el proceso de analizar las necesidades para llegar a la definicin de los requerimientos del software Especificacin: es la creacin de un documento que de forma clara y precisa exprese los requerimientos de software. Verificacin: es la fase en la que se constata que los requerimientos son los adecuados para satisfacer las necesidades se l cliente y los usuarios, adems se asegura que se cumplan con los estndares de la organizacin para garantizar que es una base adecuada para la arquitectura preliminar del proyecto. Administracin: es el control que se hace para garantizar que los procedimientos se hagan correctamente durante todo el proceso del desarrollo de los requerimientos. La elicitacion es un proceso complicado, que se enfrenta a ciertos sndromes que generan incertidumbre al proyecto. El sndrome de si, pero... Es cuando el cliente al recibir el producto expresa su satisfaccin y las mltiples aplicaciones que puedan da al producto y al mismo tiempo expresa peros como que podra tener otras cosas, hacer las cosas de otra forma, que se le podran agregar mas funciones, esto es algo inherente a la condicin humana pues al entender mejor lo que en la especificacin de requerimientos se le expresaba genera nuevas expectativas, para controlar esto lo mejor es generar estrategias para que estos peros salgan durante la etapa de desarrollo lo antes posible. El sndrome de las ruinas enterradas. Este sndrome sucede cuando al ir escudriando para encontrar los requerimientos se tiene la sensacin de que no puede ser suficiente para empezar

el diseo y desarrollo del software dando como resultado el estancamiento del proyecto (sndrome de estancamiento por anlisis), terminando en la cancelacin del mismo. Proceso de Elicitacion: Identificar el problema: el proceso de elicitacion comienza identificando el problema, la defeccin del problema se debe consensuar con el cliente y todos los que estn involucrados en desarrollo del software. Un formato apropiado es: El problema de: (Descripcin del problema) Afecta a: (Identificar a los usuarios y clientes afectados por el problema) En qu: (Describir el impacto del problema en los afectados y en las actividades del negocio) Una solucin exitosa es: (Indicar la solucin propuesta y listar los principales beneficios) Es necesario que sea identificado un solo problema o que el problema se exprese en un solo enunciado, en ocasiones se confunden las consecuencias con el problema, para ello hay que pensar y que origina la situacin o hallar el problemas tras el problema para ello se hace uso de los diagramas de cola de pescado y de Pareto. Definir las fronteras de la solucin: cuando se ha concertado el problema hay que decidir cual ser la solucin que se genera para resolverlo para lo cual es bueno fijar los limites o fronteras, para ellos se debe medir cuales partes de la solucin actuaran como parte interna de la solucin y cuales actuaran como factores externos o actores en UML, esto nos permite trabajar dentro de los limites del proyecto y administrar correctamente las expectativas que tenga el cliente. Una herramienta muy til son los diagramas de contexto en los cuales se referencia en un rectngulo el proceso y con figuras con palitos a los actores o factores externos. Identificar las Restricciones Impuestas a la Solucin: las restricciones son reducciones a la libertad que tenemos para desarrollar la solucin tal como la vemos, para hacerlo bien hay que tener en cuenta las restricciones dentro de la plantacin para analizarlas y calcular su impacto, adems para ver estrategias para cumplirlas, para ayudar a estas se usa la siguiente lista. Econmicas Qu restricciones financieras o de presupuesto son aplicables?

Existe alguna consideracin de precios de productos? Existe alguna restriccin de licencias? Una falla puede interrumpir o daar las operaciones diarias crticas del negocio? Puede este proyecto incurrir o causar perdidas financieras significantes? Es este un esfuerzo grande (> 6 meses o $100,000 Dls.)? Polticas Existen cuestiones polticas internas o externas que puedan afectar la solucin? Existen problemas o cuestiones interdepartamentales que puedan afectar la solucin? Fallar en el proyecto puede daar la reputacin de la empresa? Este problema no ha podido ser resuelto en el pasado? Existe algn participante que se oponga o tenga muchas dudas del proyecto? Existirn ms de 5 personas en el equipo del proyecto o en el Steering Comitee? Tcnicas Existe alguna restriccin en la eleccin de la tecnologa? Existe alguna restriccin para trabajar con las plataformas o tcnicas existentes? Est restringido el uso de alguna nueva tecnologa? Es necesario usar algn paquete de software adquirido por el cliente? El producto depende de tecnologa experimental? Si lo anterior ocurre, estar involucrado ms de un proveedor o componente crtico? Existe un alto nivel de complejidad tcnica involucrado? Sistemas La solucin se construir sobre un sistema existente? Se debe mantener la compatibilidad con alguna solucin existente? Qu sistemas operativos y ambientes deben ser soportados? Ambientales Existen restricciones regulatorias? Existen requerimientos de seguridad? Qu otros estndares debe respetar el proyecto?

Existen restricciones legales o ambientales? Est involucrada ms de una empresa? Ms de una empresa ser impactada por el producto? Calendario y Recursos El calendario del proyecto est definido? Se est restringido a los recursos actuales? Pueden usarse externos? Pueden expandirse los recursos temporal o permanentemente? Este proyecto est en busca de un campen? Este proyecto est en busca de un lder o administrador? El proyecto entrar en un calendario acelerado o comprometido? Lo anterior representa una dificultad o problema a largo plazo? Es el primer esfuerzo de esta compaa en proyectos de este tipo? Algn contratista externo liderar o producir algn entregable clave? Es necesario establecer un plan o asignar responsabilidades? El equipo de trabajo carece de alguna habilidad necesaria? Los recursos del proyecto estn administrados /controlados por ms de una persona? Los miembros clave del equipo se encuentran en departamentos o edificios separados? Hay dudas acerca del compromiso o disponibilidad de algn recurso clave? Cuando estn identificadas las restricciones se convierten en requerimientos, que afectaran recursos, planes de implementacin y planes del proyecto. El analista debe analizar cuales son las fuentes de las restricciones y calcular su impacto en la solucin del problema. Entender las necesidades de clientes y usuarios: cuando se trata de solucionar un problema en un sistema complejo pueden involucrarse varios grupos que pueden estar compuestos por usuarios y clientes, hay que entender muy bien las necesidades de los clientes y los usuarios para ello hay que identificarlos primero. Mediante algunas preguntas podemos ayudarnos. Caules sern los diferentes roles organizacionales que usaran el sistema? Quin va a pagar por el sistema? Qu otra persona se ver afectada por las salidas que el sistema produce? Quin es responsable de evaluar y aceptar el sistema cuando se libere? Quin ser responsable de darle mantenimiento al sistema?

CONCLUCIONES La ingeniera de requerimientos es una disciplina que permite conocer a fondo las necesidades de los clientes y los usuarios para hallar el problema que se tenga en la organizacin y generar soluciones adecuadas a los requerimientos. Hay que hacer una diferenciacin entre los clientes y los usuarios para especificar los requerimientos de forma adecuada, adems hay que tener en cuenta las restricciones propias de la organizacin e incorporarlas a los requerimientos y generar estrategias para analizarlas y medir su impacto en el desarrollo del proyecto. Cuando al entregar el producto el cliente puede a pesar de su satisfaccin expresar peros por alguna razn esto se debe evitar generando estrategias para que los peros aparezcan lo antes posible durante el desarrollo del proyecto. Los clientes son quienes estn interesados en la generacin de la soluciona si no la usen directamente, pueden ser empresarios, los responsables de un departamento de un empresa etc. Los usuarios son quienes interactan con la solucin de software. Hay que hacer hincapi en que el anlisis de requerimientos no se puede ver como una cosa trivial puesto que si es as, se arriesga a tener un colosal fracaso.

IMPLEMENTACION PRCTICA En el desarrollo de mi proyecto de software de administracin agropecuaria en tecnologa es primordial usar el anlisis de requerimientos para hallar las necesidades de los porcicultores, y los estndares del mercado a los que hay que acogerse, tambin para ver las condiciones socioeconmicas en que se desarrollan las actividades porccolas, para generar especificaciones adecuadas, a las necedades descritas anteriormente y poder brindar calidad, rendimiento costos asequibles para los potenciales clientes, Tambin su puede usar en la vida cotidiana para generar soluciones adecuadas a problemas que pueden resultar y que en ocasiones son difciles de resolver o son resueltos de forma inadecuada , para ello el anlisis de requerimientos puede brindar una efectiva herramienta para hallar la mejor solucin para los problemas.

BIBLIOGRAFIA Richard H. Thayer, Merlin Dorfman. Software Requirements Engineering, IEEE 1997. The Standish Group, Chaos Report, http://standishgroup.com/visitor/chaos.htm. Alan M. Davis. Private comunications, 1996 Dean Leffingwell, Don Widring. Managing Software Requirements (A Unifiend Approach). Addison Wesley 2000

También podría gustarte