Você está na página 1de 18

UNIVERSIDAD AUTNOMA DE CHIHUAHUA FACULTAD DE CONTADURA Y ADMINISTRACIN

Maestra en Sistemas de Informacin

MATERIA: INGENIERA DE SOFTWARE

TAREA: Error en Proceso de desarrollo

NOVIEMBRE 2011

ERRORES EN PROCESO DE DESARROLLO

INTRODUCCION. En un desarrollo de software, los resultados en la etapa de construccin han sido histricamente cuestionados debido a los problemas asociados, aproximadamente un 16% de los proyectos de software son exitosos (terminan dentro de plazos y costos y cumplen los requerimientos acordados). Otro 53% sobrepasa costos y plazos y cumple parcialmente los requerimientos. El resto ni siquiera llega al trmino. Segn Books existe una regla emprica (thumb rule), que se dice que para acabo un proyecto de software se debe designar un 1/3 de tiempo a la planeacin, 1/6 a codificacin, 1/4 a pruebas de componentes y 1/4 a pruebas son dedicas a pruebas, en otras palabras, la mitad del esfuerzo 2/4 son dedicadas a pruebas, lo cual significa en total 2/3 a lo accidental, mientras que solo el 1/3 a lo esencial, esto es preocupante ya que dedicamos menor tiempo a lo esencial que a lo accidental. De manera adicional la mayor parte de los avances en la productividad del software, se han dado histricamente gracias a herramientas y lenguajes de programacin que reducen el esfuerzo en el desarrollo de las tareas secundarias o accidentales. No as en la calidad del software. No existe una metodologa o tcnica de administracin que por s misma

prometa incluso una mejora de magnitud en productividad y calidad.

Errores en el Proceso de Desarrollo

Pgina 2

LISTADO DE LOS ERRORES CLSICOS EN EL DESARROLLO DE SOFTWARE. Son las prcticas de desarrollo poco efectivas poco efectivas que han sido realizadas tantas veces por tanta gente y con malos resultados tan predecibles que han sido denominados errores clsicos, las cuales se muestran en la siguiente tabla Personas Motivacin Indeterminada Proceso Planeacin excesivamente optimista Producto Exceso de requisitos Tecnologa Sndrome de la panacea Exceso en la Personal poco capacitado Nula o poca gestin de riesgos Cambio en los requisitos estimacin de los ahorros de los nuevos mtodos y herramientas Cambio de herramientas a mitad de proyecto Falta de control automtico de cdigo fuente

Falta de actuacin con los elementos problemticos Herosmo Aadir ms personal a los proyectos retrasados

Fallos de los subcontratistas Planificacin insuficiente

Exceso de Funcionalidades Tiras y aflojas en la negociacin Desarrollo orientado a la investigacin

Abandono de planificacin Perder el tiempo

Oficinas repletas y ruidosas

en los tramites iniciales

Personas Fricciones entre los clientes y

Proceso saltar a codificar

Producto

Tecnologa

Errores en el Proceso de Desarrollo

Pgina 3

desarrolladores Expectativas poco realistas Falta de un promotor efectivo del proyecto Falta de participacin de los implicados Falta de participacin del usuario

Diseo inadecuado Eliminar las actividades de control de calidad Poco seguimiento del proceso Forzar la convergencia de todas las actividades Omitir tareas importantes al hacer la estimacin Mantener una planificacin an

Poltica sobre el contenido

Buenos deseos

cuando se han presentado retrasos Programacin a destajo

Referentes a las Personas: 1.- Motivacin indeterminada: Boehm La motivacin es el mayor factor sobre la productividad y la calidad del desarrollo de software Errores: Arengas, trabajo extra, irse de vacaciones, remuneraciones irrisorias por terminar en plazo

Errores en el Proceso de Desarrollo

Pgina 4

2.- Personal poco capacitado: Despus de la motivacin, las capacidades de los individuos o su relacin como equipo son los siguientes factores en importancia en la productividad. Errores: Contratar lo ms barato 3.- Falta de actuacin con los elementos problemticos 4.- Heroismo: NO interesan actuaciones heroicas sino el desarrollo continuo, pausado y sin sobresaltos. 5.- Aadir ms personal a los proyectos retrasados 6.- Oficinas repletas y ruidosas. Los trabajadores que estn en oficinas silenciosas tienden a funcionar mejor que los que ocupan cubculos en salas ruidosas y repletas. 7.- Fricciones entre los clientes y los desarrolladores 8.- Expectativas poco realistas. Standish group. Las expectativas realistas son uno de los cinco factores necesarios para asegurar el xito de los desarrollos de software internos 9.- Falta de un promotor efectivo del proyecto. Ayuda a realizar una planificacin realista, control de cambios y la introduccin de nuevos mtodos de desarrollo 10.-Falta de participacin de los implicados. Promotores, ejecutivos, responsables del equipo, miembros del equipo, personal de ventas, usuarios finales, clientes, marketing 11.-Falta de participacin del usuario. Segn el Standish group,la razn fundamental de que los proyectos de sistemas de informacin tengan xito es la implicacin del usuario.

12.-Poltica sobre el contenido. Los grupos de desarrolladores tienen diferente personalidad igual que las personas. Podemos encontrar: Polticos: Se concentran en las relaciones con los responsables. Investigadores: su principal preocupacin es investigar, buscar y recopilar ms informacin. Los aislacionistas buscan marcar su zona y aislarse del exterior. Los

Errores en el Proceso de Desarrollo

Pgina 5

equipos en los que predominan los polticos funcionan bien al principio pero luego pierden el inters de la direccin. 13.-Buenos deseos: No es optimismo, es cerrar los ojos y esperar que algo funcione, sin tener bases razonables para pensarlo. Referentes al proceso de desarrollo 14.-Planificaciones excesivamente optimistas: Adems reduce en gran medida la autoestima y la productividad de los desarrolladores 15.- Nula o poca gestin de riesgos 16.- Fallos de los subcontratistas (retrasos, baja calidad o no respondiendo a los requisitos) 17.-Planificacin insuficiente 18.-Abandono de la planificacin por un exceso de presin. Se hacen planes pero se abandonan al aparecer las dificultades 19.-Perder el tiempo en los trmites iniciales. Es el tiempo empleado en obtener la aprobacin de la direccin y los fondos. Es ms fcil no perder ese tiempo que recuperarlo al programar. 20.-Saltar a codificar Eliminar las actividades iniciales improductivas Ante la pregunta ensame la documentacin de diseo? la respuesta. No ha habido tiempo de disear. Eliminamos el diseo, el anlisis y los requisitos. 21.-Diseo inadecuado. No se tiene el tiempo ni la tranquilidad suficiente para llevarlo a cabo. 22.-Eliminar las actividades de control de calidad. (Un ahorro de un da en calidad puede costar entre 3 y 10 das al final del proyecto) 23.-Poco seguimiento del proyecto 24.-Forzar la convergencia de todas las actividades mdulos-del producto. Si intentamos que todo encaje antes de tiempo tendremos trabajo extra. 25.-Omitir tareas importantes al hacer la estimacin 26.-Mantener una planificacin cuando ya se han producido retrasos. Hay que actualizar la planificacin cuando vamos teniendo ms datos del producto. (Cambios en los requisitos) 27.-Programacin a destajo (Code-like-hell) Piensan que si los programadores estn suficientemente motivados salvarn cualquier obstculo
Errores en el Proceso de Desarrollo Pgina 6

Referentes al producto: 28.-Exceso de requisitos: Se piden al sistema caractersticas complejas que el usuario no necesita y se da excesiva importancia al rendimiento. 29.-Cambio en los requisitos. El proyecto medio experimenta un 25% de cambio en los requisitos durante su desarrollo, lo que origina un 25% de incremento en el tiempo de desarrollo. 30.-Exceso de funcionalidades. Los desarrolladores, fascinados por la tecnologa u otros productos, aaden funcionalidades no solicitadas por el cliente 31.-Tiras y aflojas en la negociacin. La direccin asume el retraso en el proyecto pero a la vez aade nuevas funcionalidades 32.- Desarrollo orientado a la investigacin. Seymour Cray, el diseador de los ordenadores Cray, dice que nunca trata de superar los lmites de la 33.Sndrome de la panacea. Se confa demasiado en las nuevas tecnologas antes de ser probadas. Referentes a la Tecnologa: 33.-Sndrome de la panacea. Se confa demasiado en las nuevas tecnologas antes de ser probadas. 34.-Exceso en la estimacin de los ahorros de los nuevos mtodos y herramientas. Raramente se producen grandes mejoras instantneas en productividad. Los beneficios de las nuevas prcticas se ven reducidos por las curvas de aprendizaje asociadas con ellas. 35.-Cambio de herramientas a mitad del proyecto 36.-Falta de control automtico de cdigo fuente.

Para este caso pondremos de ejemplo a la empresa MexicoNow. En esta empresa se estaba desarrollando un directorio industrial de maquiladoras, el cual contendra lo que son:
Errores en el Proceso de Desarrollo Pgina 7

Direcciones Contactos Parques Industriales Correos Entre otras cosas, este proyecto se ha visto estancado por varias razones que podemos encontrar en nuestro tema como son: Personas Personal poco capacitado.- El personal que se designo para la creacin del proyecto de directorio por lo de que parques el industriales se no fue capacitado sin conocer adecuadamente programa comenz

adecuadamente los requerimientos de los clientes, seguido de eso que los capturitas no saban utilizar bien el programa ya que no les fue dada una capacitacin previa. Fricciones entre los clientes y desarrolladores.- Esto porque los clientes participantes para el directorio tardan mucho en enviar sus diseos y los desarrolladores del directorio no los aceptaban despus de cierta fecha, a su vez no queran que sus logotipos compartieran la misma pgina que otras empresas modificando la estructura del directorio. Falta de promotor efectivo del proyecto.- No se tuvo un lder que realizara la planificacin de entrega de avances del directorio, cuando se hacan cambios en la estructura no se creaban nuevos mtodos de desarrollo. Falta de participacin de los implicados.- Podemos observar esto desde que no se contaba con un encargado general del proyecto, adems de que con cada entrega de avances se pospona su revisin para ser impreso.

Proceso Planificacin insuficiente.- Esto debido a que el proyecto se pidi se entregara a la mayor brevedad posible, por lo que no existi el tiempo ideal para planearlo ni tampoco para ir entregando los prototipos a el ejecutivo.
Errores en el Proceso de Desarrollo Pgina 8

Poco seguimiento del proceso.- Una vez hecho el proyecto no se le dio el seguimiento adecuado por parte del Editor y el proyecto fue quedando rezagado. Mantener una planificacin an cuando se han retrasado los proyectos.Cuando el proyecto se fue quedando rezagado la informacin recolectada hasta ese momento se fue volviendo obsoleta, cuando a veces lo vuelven a retomar se sigue manejando la misma informacin que ya se haba recolectado con mucho tiempo de diferencia, con esto sabemos que muchas empresas cambian de direccin, telfono, etc. Y la informacin que manejamos se vuelve entonces poco confiable. Producto Cambio en los requisitos.- Cuando el proyecto ya va avanzado experimenta cambios en su diseo y requisitos nuevos adems de los ya mencionados (direccin, telfono, etc.) aumentando con esto el tiempo estimado de entrega. Tiras y aflojas en la negociacin.- Se comunica a el editor y ejecutivos sobre los cambios que se harn en el directorio y a su vez que estos retrasaran el tiempo de entrega, lo que no ven con buenos ojos, es decir quieren cambios pero piden que sea el mismo plazo de entrega. VERIFICACIN Y VALIDACIN. Las inspecciones de software se pueden utilizar en todas las etapas del proceso, mientras que las tcnicas de prueba slo se pueden cuando est disponible el cdigo ejecutable. Las tcnicas de inspeccin incluyen inspeccin de programas, anlisis automatizado de cdigo fuente y verificacin formal. Sin embargo las tcnicas estticas slo pueden comprobar la correspondencia entre un programa y su especificacin (verificacin) y no puede probar que el software es de utilidad operacional, y mucho menos que las caractersticas no funcionales del software

Errores en el Proceso de Desarrollo

Pgina 9

son las correctas. Por lo tanto, para validar un sistema de software, siempre se requieren llevar a cabo ciertas pruebas. La verificacin y validacin es el nombre que se da a los procesos de comprobacin y anlisis que aseguran que el software que se desarrolla est acorde a su especificacin y cumple las necesidades de los clientes. La V&V es un proceso de ciclo de vida completo. Inicia con las revisiones de los requerimientos y contina con las revisiones del diseo y las inspecciones del cdigo hasta la prueba del producto. Existen actividades de V&V en cada etapa del proceso de desarrollo del software. La verificacin y la validacin no son la misma cosa, aunque es muy fcil confundirlas, Boehm, expres la diferencia entre ellas de forma sucinta: Verificacin: Estamos construyendo el producto correctamente?, El papel de la verificacin comprende comprobar que el software est de acuerdo con su especificacin. Se comprueba que el sistema cumple los requerimientos funcionales y no funcionales que se le han especificado. Validacin: Estamos construyendo el producto concreto?, La validacin es un proceso ms general. Se debe asegurar que el software cumple las expectativas del cliente. Va ms all de comprobar si el sistema est acorde con su especificacin, para probar que el software hace lo que el usuario espera a diferencia de lo que se ha especificado. Es importante llevar a cabo la validacin de los requerimientos del sistema de forma inicial.

Errores en el Proceso de Desarrollo

Pgina 10

Dentro del proceso de Verificacin y validacin se utilizan dos tcnicas de comprobacin y anlisis de sistemas: 1. Las inspecciones del software del analizan como y el comprueban documento las de representaciones sistema

requerimientos, los diagramas de diseo y y el cdigo fuente del programa. Se aplica a todas las etapas del proceso de desarrollo. Las inspecciones se complementan con algn tipo de anlisis automtico del texto fuente o de los documentos asociados. Las inspecciones del software y los anlisis automatizados son tcnicas de verificacin y validacin estticas puesto que no requieren que el sistema se ejecute. 2. Las pruebas del software consiste en contrastar las respuestas de una implementacin del software a series de datos de prueba y examinar las respuestas del software y su comportamiento operacional, para comprobar que se desempee conforme a lo requerido. Llevar a cabo las pruebas es una tcnica dinmica de la verificacin y validacin ya que requiere disponer de un prototipo ejecutable del sistema.

Errores en el Proceso de Desarrollo

Pgina 11

En el esquema anterior muestra el lugar que ocupan las inspecciones y las pruebas dentro del proceso de desarrollo de software. Las flechas indican las fases del proceso en las que se utilizan las tcnicas. Las inspecciones de software se pueden utilizar en todas las etapas del proceso, mientras que las tcnicas de prueba slo se pueden cuando est disponible el cdigo ejecutable. Las tcnicas de inspeccin incluyen inspeccin de programas, anlisis automatizado de cdigo fuente y verificacin formal. Sin embargo las tcnicas estticas slo pueden comprobar la correspondencia entre un programa y su especificacin (verificacin), y no puede probar que el software es de utilidad operacional, y mucho menos que las caractersticas no funcionales del software son las correctas. Por lo tanto, para validar un sistema de software, siempre se requieren llevar a cabo ciertas pruebas. Aunque en la actualidad las inspecciones se utilizan ampliamente, las pruebas de los programas es an la tcnica de verificacin y validacin predominante.

Errores en el Proceso de Desarrollo

Pgina 12

Al proceso de eliminacin de los errores que se descubren durante las fases de prueba se denomina depuracin. Es un proceso independiente que no tiene porqu estar integrado: La verificacin y validacin establece la existencia de defectos en el programa. La depuracin es el proceso que localiza el origen y corrige estos defectos. No existe un proceso sencillo para la depuracin de programas. Los mejores depuradores buscan patrones en los resultados de las pruebas donde el defecto se detecta, y para localizar el defecto utilizan el conocimiento que tienen sobre el tipo de defecto, el patrn de salida, as como del lenguaje y proceso de programacin. El conocimiento del proceso es importante. Los depuradores conocen los errores de los programadores comunes (como olvidad incrementar un contador, errores de direccionamiento de punteros en lenguaje C, etc.) y los comparan contra los patrones observados. Localizar las fallas es un proceso complejo porque las fallas no necesariamente se localizan cerca del punto en que se detectan. Para localizar una falla de un
Errores en el Proceso de Desarrollo Pgina 13

programa el programador responsable de la depuracin tiene que disear programas de prueba adicionales que repitan la falla original y que ayudan a descubrir el origen de la falla. En estos casos las herramientas de depuracin que permiten rastrear el programa y visualizar los resultados intermedios es de una gran ayuda. Las herramientas de depuracin son habitualmente parte de las herramientas de apoyo al lenguaje y que sirven de base al compilador. Proporcionan un entorno especial de ejecucin que permiten acceder a las tablas de smbolos del compilador, a travs de ella a los valores de las variables del programa. Habitualmente, permiten controlar la ejecucin paso a paso sobre el cdigo del programa. Despus de que se descubre el origen de la falla en el programa, este debe corregirse y entonces reevaluar el sistema. Esto implica repetir de nuevo las pruebas anteriores (pruebas de regresin). Estas pruebas se hacen para comprobar que los cambios introducidos resuelven definitivamente la falla y no Introducen nuevas fallas.

Errores en el Proceso de Desarrollo

Pgina 14

Llevar a cabo pruebas sistemticas de los programas requiere que se desarrollen, ejecuten y examinen diferentes pruebas. Este proceso es muy largo y caro. Cada ejecucin de una prueba suele descubrir, en el mejor de los casos, un nico fallo, ya que la cada del sistema o la corrupcin de los datos que puede implicar hacen que sea difcil encontrar el siguiente. Por el contrario la inspeccin del software no requiere que el programa se ejecute cono lo que se puede utilizar como tcnica de verificacin antes de que el sistema est totalmente implementado. Durante una inspeccin, se examina el cdigo fuente del sistema y se compara con la especificacin del mismo que se dispone. Se ha comprobado estadsticamente que la inspeccin es una tcnica mucho ms eficiente para la deteccin de errores que la verificacin basada en pruebas. Es ms barato encontrar errores a travs de la inspeccin que con pruebas, y adems se considera que el 60% de los errores se detectan mediante una inspeccin rutinaria, y hasta un 90% de los errores se detectan mediante una inspeccin sistemtica. Existen dos razones por las que las inspecciones son ms efectivas que las pruebas: Varios defectos se detectan en una sola inspeccin. El problema con las pruebas es que slo pueden detectar nico fallo por prueba, ya que los defectos de la primera que se detecte pueden afectar a la deteccin de las siguientes. Usa el conocimiento del dominio y del lenguaje de programacin que se utiliza. En esencia, es ms probable que los revisores vean los tipos de errores que comnmente ocurre el lenguaje de programacin particulares y en los tipos particulares de la aplicacin.

Errores en el Proceso de Desarrollo

Pgina 15

El proceso de inspeccin siempre se realiza utilizando una lista de los errores comunes de los programadores. Esta se somete a discusin por el personal con experiencia y se actualiza frecuentemente segn se vaya teniendo experiencia.

Errores en el Proceso de Desarrollo

Pgina 16

La lista de errores debe ser funcin del lenguaje de programacin que se utilice. Por ejemplo un compilador Ada comprueba que las funciones tienen el nmero correcto de argumentos, mientras que C no. Muchos de los fallos en C tienen relacin con los punteros, estos no se pueden producir en Java. La cantidad de cdigo que se puede inspeccionar debe estar limitado, ya que a partir de un tiempo de inspeccin se baja la atencin y se hace ineficaz. Existen estudios que establecen que no deberan examinarse mas de 125 lneas de cdigo
por sesin, y no ms de 2 horas.

CONCLUSIONES El proceso de desarrollo de software es una tarea complicada. Concebir un sistema de informacin complejo ya es de por s un reto, si unimos este hecho a que por lo general la tecnologa empleada es muy sofisticada, y ms hoy en da, queda claro que solamente se puede afrontar con xito si se gestiona con cuidado y con los medios de ingeniera adecuados. Se tomaron en cuenta los errores ms comunes y ms importantes, pero hay muchos ms. Resulta muy recomendable actualizar esta lista continuamente con los errores que se detecten en cada uno de los proyectos abordados. En proyectos de desarrollo de software habitualmente se dan desvos sobre la planificacin inicial, la forma de responder a ello no suele pasar ms all de medidas de mayor presin de calendarios, horas extra y aadir personal a un proyecto. El capital ms importante de una empresa de desarrollo son sus recursos humanos, por tanto la gestin debe tener muy en cuenta las caractersticas de stos para lograr una mxima productividad. La tecnologa es compleja, por tanto, lo es tambin el trabajo y las decisiones que se deben tomar en su desarrollo, adems tiene un fuerte efecto sobre la productividad, por tanto, resulta muy rentable mantener los recursos humanos a un mximo nivel.
Errores en el Proceso de Desarrollo Pgina 17

En resumen, para corregir los errores que se presenten durante el proceso de desarrollo de software, es necesario enfrentarse a las exigencias de dicho desarrollo, y conocer muy bien tanto las caractersticas del proceso como el perfil psicolgico de las personas que realizan esta labor, pues el xito depende bsicamente de ello, y no importar que aunque se cuente con las mejores herramientas de Ingeniera, stas no servirn de nada, si el factor humano falla.

REFERENCIAS
www.es.scribd.com, (2011) Listado de errores clsicos en el desarrollo de software, consultado el da 9 de Noviembre de 2011 http://es.scribd.com/doc/51957036/errores-clasicos-en-el-desarrollo-de-software www.es.wikipedia.org (2011) Definicin de Software, Consultado el da 10 de noviembre de 2011 http://es.wikipedia.org/wiki/Software www.inf.udec.cl (2011), Gestin de Proyectos de desarrollo de software, Consultado el da 10 Noviembre de 11 www.inf.udec.cl/~mvaras/gpis/apunteGPDS.pdf

Errores en el Proceso de Desarrollo

Pgina 18

Você também pode gostar