Vous êtes sur la page 1sur 19

TITULO ANALISIS DE LA GESTION DE REQUERIMIENTOS DEL MODELO CMMI * Ricardo Len Bernal RESUMEN La toma de requerimientos tiene como

funcin definir y delimitar el funcionamiento de un desarrollo de software, la forma como se definen estos est relacionado con la mejora de procesos ya que tiene en cuenta el grupo de desarrollo, el tamao del producto y la facilidad con que se desarrollan, tambin se relaciona con el Aseguramiento de la calidad basado en modelos internacionales como el del Software Engineering Institute (SEI) y por ultimo Gestin de riesgos el cual se basa en la documentacin que se realice de los requerimientos obtenidos lo cual permite tenerlos bien definidos y acordes a la necesidad. ABSTRACT The capture of requirements has the function of defining and delimiting the operation of a software development, defining how these are related to process improvement because it takes into account the development group, the size of the product and the ease with which develop, is also related to the Quality Assurance based on international models such as the Software Engineering Institute (SEI) and finally risk management which is based on the

* Ingeniero informtico

documentation requirements is conducted from allowing them well defined and consistent with the need. PALABRAS CLAVE Requerimientos, Procesos, Calidad, Riesgo KEY WORDS Requirements, Processes, Quality, Risk INTRODUCCIN Mejorar el proceso de desarrollo de las empresas se ha convertido en algo primordial en un mundo globalizado. La gestin de requerimientos en el proceso de desarrollo de software se ha identificado como una parte sensible a la hora de construir un producto ya que desde este momento es que se definen las caractersticas, reglas del negocio, objetivos que se deben cumplir para que el proyecto tenga xito adems de Asegurar que se cumpla en los plazos establecidos, con los recursos estimados, con el alcance y calidad deseada y a completa satisfaccin del cliente, es uno de los desafos ms importantes que enfrenta cualquier organizacin orientada al desarrollo de Software. La gestin de Requerimientos juega un rol fundamental en esta situacin. Esta exige el correcto y completo entendimiento del Negocio,

* Ingeniero informtico

la organizacin y la tecnologa involucrada, para poder satisfacer las distintas necesidades de todos los actores involucrados.

* Ingeniero informtico

Los integrantes del proyecto con menos experiencia son los principales beneficiados ya que el proceso exige que se identifiquen y especifiquen de manera precisa sus requerimientos. Tambin exige administrar los cambios a los requerimientos una vez iniciada la elaboracin del producto. Si la gestin de requerimientos no se enfrenta bajo un modelo establecido puede ocurrir Prdida de control del proyecto por los desarrolladores ya que conocen parte del proyecto o a veces se repiten soluciones diferentes para el mismo problema, intentar entregar el producto por iteraciones, pero estas nunca quedaban definidas, y pronto se pierde el control exacto de las funcionalidades incluidas en cada entregable, La gestin de requerimientos mediante una hoja Excel no ayuda mucho, el cliente queda medianamente satisfecho con el producto final adems este queda con carencias importantes y la etapa de desarrollo puede ser muy dura tanto para el equipo como para el cliente. Los resultados se utilizan administrando los requerimientos mediante el proceso de Control de Cambios, en el cual se aplican mtodos para registrar, evaluar y aplicar solicitudes de cambio. Se utilizan repositorios de cdigo y documentos con manejo de versiones, garantizando que sea posible volver a versiones anteriores de requerimientos aplicados a la lnea base de un proyecto. Los resultados se utilizan administrando los requerimientos donde se aplican mtodos para registrar, evaluar y aplicar solicitudes. Se utilizan repositorios de cdigo y documentos con manejo de versiones, garantizando que sea posible volver a versiones anteriores de requerimientos aplicados a la lnea base de un proyecto, adems de identificar desde el comienzo los riesgos del proyecto,

donde se definen las acciones preventivas y correctivas con el fin de eliminar o mitigar el impacto de ocurrencia de un riesgo. Mejora de procesos Con el mercado globalizado, la demanda de productos y servicios de mayor calidad ingresa como un factor que define que proveedor seleccionar. Las empresas de desarrollo de software generan no solo productos y servicios que contribuyan al desempeo de sus clientes tambin mejoran los procesos al interior de si mismas logrando mayor productividad y calidad. Los elementos presentados por Casallas Gutirrez et al, en (ON LINE, 2004, 68) como los principios, organizacin de las prcticas, la metodologa para implementar cada prctica y el plan de implantacin sugerido conllevan a que la organizacin o la unidad de desarrollo adquieran madurez frente a los procesos de desarrollo de software, estos elementos tiene en comn la idea fundamental de mejoramiento continuo, retroalimentacin de ideas lo que consiste en que los procesos seleccionados pueden ser adaptados segn la cultura de la organizacin, el tamao del proyecto, las especificaciones y/o necesidades de cada situacin. Los procesos planteados son adecuados en trminos de mejorar la calidad del producto, el desempeo del grupo de desarrollo y la facilidad para realizar el mantenimiento a los productos de software ya construidos.

Las propuestas hacen nfasis en la adaptabilidad del proceso. Ya que no se espera que el proceso nos indique el camino a seguir, se dedica ms en la preparacin de este para adaptarlo al cambio, para que el impacto sea mnimo. Los procesos pueden ser adaptados a los tipos de proyectos, no existe un modelo nico que pueda ser aplicado a todos los proyectos en cambio el modelo depende del tipo de proyecto que se esta desarrollando por ejemplo: 1. Crear un proyecto desde cero y aplicarle componentes ya existentes de otros proyectos, como el proyecto es nuevo conlleva ms tiempo el anlisis de los requerimientos y genera ms riesgos. 2. Modificar un proyecto ya existente agregndole funcionalidad, hace que este se vuelva mas robusto y genere retrasos en el cronograma ya que debe integrar lo que existe con lo nuevo sin sacrificar calidad. 3. Reescribir proyectos los cuales estn desarrollados bajo una tecnologa vieja y transformarlos a una tecnologa nueva como lo son las orientadas a objetos. Sin importar el proceso seleccionado por un equipo de desarrollo que pretenda seguir, la organizacin adquiere experiencia al ritmo de sus propias necesidades. La maduracin de los procesos incluye las prcticas realizadas en todo el ciclo de vida de desarrollo. Si las prcticas resultan efectivas y los procesos resultan tiles, los equipos las institucionalizan y mejoran con el objetivo de poderlas utilizar en proyectos futuros. Como lo sostiene el autor Casallas Gutirrez et al,

Un punto en el que se debe hacer nfasis ya que aplica en cualquier contexto, es la importancia de usar herramientas de apoyo al proceso. Cualquiera que sea la prctica de proceso incluida, se deben buscar herramientas que apoyen el seguimiento de esta prctica, ayuden a su adaptacin y as, promuevan la mejora continua de la prctica a la vez que descarguen trabajo operativo manual a los integrantes del equipo. (ON LINE, 2004, 68). Implementar un modelo de desarrollo de software en la pequea empresa no es comn ya que estas se dedican a atacar el problema inmediatamente dejando de lado la toma de requerimientos, la administracin de los cambios y la documentacin y esto se convierte en un proceso muy costoso cada vez que el proyecto avance mas o como lo dice Casallas Gutirrez et al, Muchas veces se cree que el proceso de software en vez de ser una herramienta de apoyo al desarrollo, es una carga extra para los participantes. Esto puede ser cierto si el enfoque para incluirlo es prescriptivo e incluye muchas prcticas a la vez. Con esto slo se logra que las prcticas se dejen de lado rpidamente ya que no se ve su utilidad y los desarrolladores sienten que por seguir el proceso, no desarrollan el producto. (ON LINE, 2004, 68). Uno de los recursos ms importantes en el modelo de desarrollo de software es la administracin de requerimientos y la administracin de Casos de Uso ya que estos definen las reglas y las capacidades que podr realizar un producto de software, Pressman, 1998, 183, define el anlisis de requerimientos as: El anlisis de requisitos permite al ingeniero de sistemas especificar la funcin y el rendimiento del software, indica la interfaz del software con otro elementos del sistema y establece las restricciones que debe cumplir el software Lo requerimientos deben contener: Descripcin clara y completa de la necesidad. Limitaciones. Fecha de creacin y terminacin.

Responsables quienes aprobaran y son parte del cliente. Prioridad. Estado. Los estados de un requerimiento indican como se encuentra este y en que parte del desarrollo se ubica. Los estados propuestos para un requerimiento son: Propuesto: Indica que el requerimiento fue solicitado por el cliente. Evaluacin: El requerimiento fue propuesto y est siendo evaluado por los usuarios y por el equipo de desarrollo. Aprobado: El impacto que este genere en el proyecto fue analizado, proyectado y asignado para una versin especfica. Los usuarios estaban de acuerdo en incorporar el requerimiento, y el grupo de desarrollo de software ya acept implementar el requerimiento. Rechazado: El requerimiento fue propuesto pero no se aplicara al producto de software dada su viabilidad o impacto. Implementado: La implementacin del requerimiento fue probada y realizada. Es relevante asegurarse que los requerimientos tengan relacin a los casos de uso propuestos para el producto, ya que los casos de uso indican la implementacin propuesta del producto a partir del conocimiento que tiene el usuario del problema. Como lo concluye Casallas Gutirrez et al el uso de herramientas de apoyo a los procesos es fundamental en la inclusin de prcticas de desarrollo que lleva a cabo un equipo. (ON LINE, 2004, 73). En el caso de los proyectos se necesitan habilidades y procesos bien definidos en las siguientes reas:

La organizacin debe definir el proceso de administracin del conocimiento

con el objetivo de que el equipo adquiera toda la experiencia resultante del rea de investigacin y desarrollo sobre todo cuando se trabaja con tecnologa nueva. El no tener experiencia en la lgica del negocio para el cual se pretenda

desarrollar es una falencia de las organizaciones, esto significa la prdida de oportunidades de negocio o tener que realizar una validacin ms exhaustiva de los requerimientos y por lo tanto tener mas contacto con el cliente lo que puede generar una inadecuada especificacin de requerimientos. La falta de datos histricos dentro del proyecto es vital ya que de las

experiencias pasadas es que se pueden tomar decisiones cada vez ms acertadas en cuanto a estimacin de tiempo, costos, presupuesto, personal esto conlleva a retrasos en los cronogramas. La administracin del conocimiento y como tal el mantenimiento de la

documentacin es una caracterstica determinante para el xito de un proyecto de desarrollo ya que las organizaciones sufren la pedida continua de sus desarrolladores y es un riesgo el cual debe mitigarse ya que puede presentarse a cualquier nivel de la organizacin. Los esfuerzos que han logrado mejores avances en el mundo del software es el desarrollo de modelos de madurez del proceso de desarrollo de software que permite estandarizar la produccin a manera de cualquier otro producto y tambin permite una mejora continua.

La principal razn para que los modelos sean exitosos es que plantean un cambio de cultura de la organizacin y una inversin en recursos en los cuales estn tecnolgicos, humanos y financieros. Aseguramiento de la calidad Con el objetivo de garantizar la calidad del producto que se esta elaborando y acorde con los niveles de accin establecidos por la organizacin para lograrlos, debe crearse un documento en el cual se establezcan los requerimientos, siguiendo directrices de aseguramiento de calidad propuestas como las del Software Engineering Institute (SEI). En el modelo CMMI del SEI las reas de proceso satisfacen unas metas (especficas y genricas) de la organizacin, y stas a su vez se logran gracias a la implementacin de una serie de prcticas (especficas y genricas) de las que se obtiene como resultado unos entregables. A continuacin se definen los elementos encontrados en el Software Engineering Institute que conforman la estructura del modelo CMMI: Meta Genrica (GG Generic Goal) Se llama genrica debido a que la misma meta genrica aparece en mltiples reas de proceso. La implementacin de una meta genrica es indicativa de si el proceso involucrado es efectivo, repetible y duradero. Las Metas Genricas son REQUERIDAS por el modelo y son utilizadas durante las evaluaciones para determinar si rea de Proceso est o no complementada. Meta especfica (SG - Specific Goal) Se aplican a un rea de proceso y tratan las caractersticas nicas que describen que se debe poner en ejecucin para satisfacer el rea de proceso.

Las metas especificas son requeridas por el modelo y se utilizan en valoraciones para determinar si un rea de proceso esta satisfecha. Prctica Genrica (GP Generic Practice) Una prctica genrica proporciona institucionalizacin para asegurar que los procesos asociados al rea de Proceso sern efectivos, repetibles y duraderos. Las prcticas genricas son componentes esperables. Las metas y las prcticas genricas habilitan a una Organizacin a institucionalizar las mejores prcticas. Las prcticas especficas estn ms orientadas a la implementacin y las prcticas genricas estn ms orientadas a la institucionalizacin. Prctica especfica (SP Specific Practice) Es una actividad que es considerada importante para alcanzar la meta especfica asociada. Describe las actividades ESPERADAS para complementar una meta, entendiendo por Esperadas que pueden haber implementadas prcticas equivalentes a las solicitadas. Una prctica puede ser implementada a travs de una actividad, de varias actividades, de una actividad parcial o de cualquier combinacin posible de las anteriores. (Software Engineering Institute, 2006, 19) El rea de proceso de Gestin de Requerimientos es en la cual se describen las actividades para la obtencin y el control de los cambios en los requerimientos y garantizar que los planes pertinentes y los datos se mantienen actualizados. Este proporciona la trazabilidad de los requerimientos de los clientes de un producto a los componentes del producto. Segn IEEE un requerimiento es 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 (Aybke, 2005, 47) La estructura del rea de proceso de Gestin de Requerimientos definida en Software Engineering Institute, 2006, 408 se describe a continuacin: REQUIREMENTS MANAGEMENT

An Engineering Process Area at Maturity Level 2 SG 1 Gestin de requerimientos Los requerimientos son gestionados y las contradicciones con los planes del proyecto y productos de trabajo se identifican. SP 1.1 Entender los requerimientos Desarrollar un entendimiento con los requisitos de los proveedores en el sentido de los requisitos. SP 1.2 obtener compromiso con los requerimientos Obtener el compromiso de los participantes del proyecto con los requisitos. SP 1.3 Gestionar los cambios a los Requerimientos Gestionar los cambios a los requisitos a medida que evolucionan durante el proyecto. SP 1.4 Mantener la trazabilidad bidireccional de los requerimientos Mantener la trazabilidad bidireccional entre las necesidades y los productos de trabajo. SP 1.5 Identificar las inconsistencias entre el proyecto y los requerimientos Identificar inconsistencias entre los planes del proyecto y los productos de trabajo y los requerimientos. La gestin de los requerimientos asegura que los cambios a los requerimientos se reflejan en los planes de proyectos, actividades y productos de trabajo. Este

ciclo de cambios puede afectar a todas las otras reas de ingeniera de procesos, por lo que la gestin de requerimientos es una secuencia dinmica y recursiva de los acontecimientos. El rea de proceso de Gestin de requerimientos es fundamental para controlar y disciplinar el proceso de diseo de ingeniera, esto lo confirma Senn, cuando dice El aseguramiento de la calidad es la revisin de los productos y documentacin relacionada con el software para verificar su cobertura, correccin, confiabilidad, y facilidad de mantenimiento. Y, por supuesto, incluye la garanta de que un sistema cumple las especificaciones y los requerimientos para su uso y desempeo deseados. (Senn, James A. 1992, 793) Es importante que la organizacin implemente procedimientos o por lo menos un nivel 2 de madurez del modelo CMMI. Esto conlleva a que el sistema de desarrollo se estandarice en base a procesos que permiten desarrollar los proyectos de un modo repetitivo. Los factores que ms influyen en el fracaso de las organizaciones son: falta de experiencia por parte del grupo de desarrolladores y grupo administrativo, poco realismo de la planificacin del negocio, la cultura administrativa de los proveedores. Cuando se trata de implementar procesos de desarrollo de software, no es solo referirse a temas tcnicos porque la gran mayora de los problemas son organizativos. El objetivo consiste en mejorar los procesos de desarrollo de software de tal modo que los proyectos sean ms predecibles, que se reduzcan los riesgos en el desarrollo con el consiguiente ahorro de recursos. En las organizaciones las personas han ido ocupando roles de administracin sin haber sido correctamente preparados o con estudios que los certifiquen, tcnicamente pueden estar preparados pero presentan graves deficiencias en

labores de gestin. El problema fundamental es que se han implementado en las organizaciones procesos mal estructurados, que generan un desarrollo poco predecible y repetible. Por lo tanto, se requiere de prcticas que apoyen a la organizacin. Analizando lo que dice el autor Uno de los elementos fundamentales en todo el proceso de mejora del software es su continua medicin durante todo el ciclo de vida del producto. Pero el problema que se le plantea a la pequea o mediana empresa es decidir qu es lo que hay que medir y cmo se pueden utilizar dichas mediciones, planteando objetivos de mejora en la calidad del proyecto. (ON LINE, 2000, 57) El anlisis de calidad debe ser continuo y se debe decidir que es lo que se debe medir de cada uno de los puntos que conforman la etapa de anlisis, sea el nivel de calidad se debe medir desde las etapas tempranas del desarrollo del producto ya que cada resultado de las mediciones indica como se esta frente al proceso y as poder ayudar a tomar decisiones y mejorar los objetivos. Dadas las nuevas caractersticas del entorno en el que se desempean las proyectos es necesario disear procesos en los cuales estos se actualicen ya que aparecen nuevas tecnologas, nuevos productos y los clientes son cada vez ms exigentes. El proceso de calidad debe nacer por conviccin de los dirigentes de la organizacin ya que es aqu desde donde se promulgan las buenas practicas y donde se adecuan y mejoran las actividades y procesos en el desarrollo de productos, se puede llegar incluso a comercializar estas ideas e interactuar con los clientes. Ya que cuando se implemente un proyecto es aqu donde se

aplicaran las guas diseadas por la organizacin y sern adaptadas segn las caractersticas y lo mas conveniente para este. Gestin de riesgos La manera como se especifican, controlan y soportan los requerimientos es indispensable para obtener desarrollos de software bien elaborados, confiables y mantenibles, Analizando lo que dice Baca Urbina "Es evidente que cualquier inversin para producir bienes lleva un riesgo implcito. Este riesgo ser menor entre mas se conozca sobre todas las condiciones econmicas, de mercado, tecnolgicas, etctera" (Baca Urbina, 1995, 211) es por esto que la trazabilidad es el mecanismo fundamental para lograr este resultado, es lo que permite obtener la informacin necesaria para tener documentada la gestin de requerimientos y lograr que estos se transformen en objetos del proceso de desarrollo controlando su coherencia y alcance. Al tener requerimientos bien definidos permite a los ingenieros de software evaluar la arquitectura sobre la cual estos se implementaran, analizar la efectividad del diseo en concordancia con lo requerimientos establecidos, considerar alternativas arquitectnicas en una etapa donde hacer cambios de diseo es relativamente ms fcil y menos costosa y reducir los riesgos asociados con la construccin del software. El diseo del software debe ser basado en actividades repetibles que son encontradas comnmente en el diseo de otros sistemas similares tal como lo define Pressman, 2002. El diseo debe tener la habilidad de reusar bloques de construccin reusables, Estas actividades deben estar comprendidas por un conjunto de componentes que realicen una funcin requerida por un sistema, un conjunto de conectores que habilite la comunicacin, coordinacin y cooperacin entre los componentes, restricciones que definan cmo los

componentes pueden ser integrados para formar el sistema, y modelos que permitan al diseador entender las propiedades generales del sistema por medio del anlisis de los requerimientos que lo constituyen. La trazabilidad permite lograr que los integrantes del proyecto visualicen mas claro el proceso de desarrollo ya que brinda ms informacin, la comunicacin puede ser ms efectiva adems de soportar los cambios en los desarrollos y el control de las tareas. Para definir el alcance de la trazabilidad como lo dice el autor Los elementos que apoyan el proceso de desarrollo son susceptibles de ser trazados. El grado de trazabilidad que se puede lograr depende de factores tales como la cantidad y calidad de informacin que proporcionan los elementos de modelo y las necesidades de los participantes del proyecto en la gestin que se deriva de la traza. (ON LINE, 2007, 71). Se debe conocer los objetivos a alcanzar y los entregables que se deben elaborar en cada fase del proyecto, tambin se debe conocer la forma como trabajan los flujos de trabajo de cada fase. CONCLUSIONES El ingeniero de software debe utilizar su capacidad de anlisis para definir la entrevista que se realizara para que la obtencin de los requerimientos sea lo que el usuario desea lograr con el producto y este exprese realmente lo que se necesita. Con esto evitara que el proyecto fracase debido a una mala elaboracin en la definicin y especificacin de requerimientos. Ya que si estos no estn bien definidos puede conllevar a perdida de tiempo y dar la sensacin de falta de control y de que el proyecto no avanza.

Si desde la generacin de la propia empresa se crea con metodologas que promuevan las mejores prcticas y sus directivos tienen la conviccin de aplicarlas entonces no importa el tamao del proyecto o de la organizacin, estas siempre se deben cumplir ya que cada proyecto genera nuevo conocimiento o refuerza lo aprendido.

Referencias Casallas Gutirrez, Rubby. Arboleda Jimnez, Hugo Fernando. QualDev

Process: Procesos Adaptables de Desarrollo de Software para Proyectos giles. [ON LINE], Dic. 2004, [Consultado el 10 de abril de 2009], de http://web.ebscohost.com/ehost/pdf?vid=5&hid=15&sid=092c5c28-46ed-46eb8408-5d0430507f87%40sessionmgr9 Pressman, Roger S. Ingeniera del software: un enfoque prctico. Cuarta

edicin. Mc Graw Hill. Espaa. 1998. 581 Software Engineering Institute, CMMI for Development. Version 1.2.

Pittsburgh, PA. 2006. 561 Aybke Aurum, Claes Wohlin. Engineering and Managing Software

Requirements. Springer. Germany. 2005. 478 Senn, James A. Anlisis y diseo de sistemas de informacin. Segunda

edicin. Mc Graw Hill. Mxico. 1992. 942 Garca vila, Lourdes. lvarez Crdenas, Sofa. Quintero de Castro,

Fernando. Necesidad de la medicin en la gestin de la calidad de los proyectos de software para el Ministerio del Azcar. [ON LINE], Abr. 2000, [Consultado el 17 de abril de 2009], de http://web.ebscohost.com/ehost/pdf? vid=7&hid=12&sid=e6b5f7bb-b154-413d-9506-e8e9075e43fd %40sessionmgr102

Baca Urbina, Gabriel. Evaluacin de proyectos. Tercera edicin. Mc Graw

Hill. Mxico. 1995. 339 Pressman, Roger S. Ingeniera del software: un enfoque prctico. Quinta

edicin. Mc Graw Hill. Madrid. 2002. 601 Silvia Tabares, Marta. Barrera, Andrs Felipe. Arroyave, Juan David.

Pineda, Juan Diego. Un mtodo para la trazabilidad de requisitos en el proceso unificado de desarrollo. [ON LINE], Dic. 2007, [Consultado el 17 de abril de 2009], de http://web.ebscohost.com/ehost/pdf?vid=1&hid=12&sid=ed3f4699fe28-4c93-af74-2ddd25db248a%40SRCSM1

Vous aimerez peut-être aussi