Trabajoinvestigacion

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Trabajoinvestigacion as PDF for free.

More details

  • Words: 3,838
  • Pages: 20
1

I. INTRODUCCIÓN

2 1. Tema de Investigación Desarrollo de Software a la medida 2. Objetivos 2.1. Objetivo General 2.1.1. Conocer y Analizar el modelo y desarrollo de software a la medida. 2.2. Objetivos Específicos 2.2.1. Definir el concepto de desarrollo de software a la medida. 2.2.2. Conocer y describir el proceso de desarrollo de software a la

medida.

2.2.3. Conocer el sector empresarial en que más se aplica el desarrollo

de software a

la medida en Costa Rica. 2.2.4. Conocer los modelos del ciclo de vida del software. 3. Justificación del tema En el sector empresarial, más aun, desde un punto de vista ingenieril, la búsqueda de soluciones es un proceso infinito, es decir, siempre habrá en toda organización aspectos deficientes, o que puedan mejorase; esto debido a que todo proceso, por más simple o sencillo que parezca, siempre puede ser mejor, por tanto, la búsqueda de la perfección en el desarrollo de sus operaciones; debe siempre guiar a las empresas en un proceso de mejora continua. Con el desarrollo de las tecnologías de información a través de los años, han surgido una serie de estrategias, conceptos y herramientas que facilitan la búsqueda de soluciones a problemas empresariales, una de estas herramientas el es desarrollo de software a la medida, que haciendo uso de la tecnología y el conocimiento de profesionales permite a una compañía encontrar soluciones simples para problemas de distintas dimensiones. El software dirigido a satisfacer necesidades específicas mejora la eficiencia y calidad de una organización.

3 4. Alcances y Limitaciones de la Investigación 4.1 Alcances La presente investigación permitirá conocer el concepto de desarrollo de software a la medida, haciendo énfasis en las etapas de desarrollo del mismo, así como comprender los beneficios que trae a una empresa buscar la satisfacción de sus necesidades haciendo uso de las tecnologías de información. 4.2 Limitaciones La investigación no contempla el tema de Global Software Outsourcing, que viene a ser parte importante del desarrollo de software a la medida, dado que organizaciones de diversas partes del mundo solicitan proyectos de esta naturaleza a empresas ubicadas inclusive en otro continente, por lo tanto la relación que se establece entre clientedesarrollador es de gran importancia. El presente trabajo se enfoca en las etapas del desarrollo de software y las diferentes metodologías que existen.

4

II. MARCO TEÓRICO

5 1. Software y globalización En los últimos años el software se ha convertido en un componente vital para el desarrollo de los negocios, un arma competitiva muy importante para lograr el éxito empresarial. Desde hace más de diez años, la búsqueda de la disminución de costos ocasionó que varias organizaciones iniciaran a experimentar con instalaciones de desarrollo de software localizadas y con outsourcing 1 . 2. Desarrollo de software a la medida Desarrollo de software a la medida significa diseñar y programar un sistema informático para realizar una tarea o cumplir una función especifica. El desarrollo de software a la medida es capaz de producir soluciones ajustadas a los requerimientos de una empresa, siendo tiempo y dinero los únicos factores limitantes2. Permite a la empresa la oportunidad de obtener una ventaja competitiva mediante el uso de tecnología de una manera más efectiva y eficiente; además de un buen método de reducción de costos. El proceso de desarrollo de software a medida normalmente incluye, de manera general los siguientes aspectos: 1. Análisis detallado de las necesidades de la empresa 2. Preparación de las especificaciones de diseño. 3. Desarrollo conceptual. 4. Programación de la aplicación. 5. Pruebas. 6. Capacitación y soporte. 7. Manutención y desarrollo post producción. 3. Ciclo de vida del software El ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final. El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo, se asegura de que los métodos utilizados son apropiados. Estos programas se originan en el hecho de que es muy costoso rectificar los errores que se detectan tarde dentro 1 2

Herbsleb, James, Moitra, Deependra. “Global software Development”

Desarrollo de Software a la medida; revisado el 18 de septiembre del 2008; http://www.polarsoft.cl/desarrollo.html

6 de la fase de implementación. El ciclo de vida permite que los errores se detecten lo antes posible y por lo tanto, permite a los desarrolladores concentrarse en la calidad del software, en los plazos de implementación y en los costos asociados3. El ciclo de vida básico de un software se compone de los siguientes procedimientos: 1. Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global. 2. Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar. 3. Diseño general: requisitos generales de la arquitectura de la aplicación. 4. Diseño en detalle: definición precisa de cada subconjunto de la aplicación. 5. Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño. 6. Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones. 7. Integración: para garantizar que los diferentes módulos se integren con la aplicación. Éste es el propósito de la prueba de integración que está cuidadosamente documentada. 8. Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales. 9. Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros. 10. Implementación 11. Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo). Existen diferentes modelos de ciclo de vida de software, el elegido para un determinado proyecto depende de lo acordado entre el cliente y el desarrollador 4.

3

Heeks, R. “Why information Systems Succeed or Fail”. Proc. Business Information ManagementConf., CDROM, Manchester Metropolitan Univ., Manchester, UK, 1998. 4 Valdis Berzins and Lugi. (1991) Software Engineering with Abstractions. Primera Edición. Editorial AddisonWesley Publishing Company, Inc.

7 4. Metodologías del desarrollo de sistemas de información Son métodos que indican como hacer mas eficiente el desarrollo de sistemas de información. Estas metodologías deben definir: objetivos, fases, tareas,

productos y

responsables, necesarios para la correcta realización del proceso y su seguimiento. Los principales objetivos de una metodología de desarrollo son: 1. Asegurar la uniformidad y calidad tanto del desarrollo como del sistema en sí. 2. Satisfacer las necesidades de los usuarios del sistema. 3. Conseguir un mayor nivel de rendimiento y eficiencia del personal asignado al desarrollo. 4. Ajustarse a los plazos y costos previstos en la planificación. 5. Generar de forma adecuada la documentaron asociada a los sistemas. 6. Facilitar el mantenimiento posterior de los sistemas. Los distintos métodos de desarrollo de software, de acuerdo al modelo de ciclo de vida seleccionado son los siguientes 5: 4.1. MÉTODO DE CASCADA Es el primer modelo de desarrollo de software. Éste toma las actividades fundamentales del proceso de especificación, desarrollo, validación y evolución y las representa como fases separadas del proceso. El modelo en cascada consta de las siguientes fases: •

Definición de los requisitos: Los servicios, restricciones y objetivos son establecidos con los usuarios del sistema. Se busca hacer esta definición en detalle.



Diseño de software: Se divide el sistema en sistemas de software o hardware. Se establece la arquitectura total del sistema. Se identifican y describen las abstracciones y relaciones de los componentes del sistema.



Implementación y pruebas unitarias: Construcción de los módulos y unidades de software. Se realizan pruebas de cada unidad.



Integración y pruebas del sistema: Se integran todas las unidades. Se prueban en conjunto. Se entrega el conjunto probado al cliente.

5

Ciclo de vida del proceso de desarrollo de Software; revisado el 19 de septiembre del 2008; http://www.ceroble.edu.gt/pcb/sa/bi/v_curso/mapoyo/informatica/ciclo.pdf

8 •

Operación y mantenimiento: Generalmente es la fase más larga. El sistema es puesto en marcha y se realiza la corrección de errores descubiertos. Se realizan mejoras de implementación. Se identifican nuevos requisitos.



La interacción entre fases puede observarse en la Figura No.1. Cada fase tiene como resultado documentos que deben ser aprobados por el usuario. Una fase no comienza hasta que termine la fase anterior y generalmente se incluye la corrección de los problemas encontrados en fases previas.

Figura No. 1. Modelo de desarrollo en cascada. En la práctica, este modelo no es lineal, e involucra varias iteraciones e interacción entre las distintas fases de desarrollo. Algunos problemas que se observan en el modelo de cascada son: •

Las iteraciones son costosas e implican rehacer trabajo debido a la producción y aprobación de documentos.



Aunque son pocas iteraciones, es normal congelar parte del desarrollo y continuar con las siguientes fases.



Los problemas se dejan para su posterior resolución, lo que lleva a que estos sean ignorados o corregidos de una forma poco elegante.



Existe una alta probabilidad de que el software no cumpla con los requisitos del usuario por el largo tiempo de entrega del producto.



Es inflexible a la hora de evolucionar para incorporar nuevos requisitos. Es difícil responder a cambios en los requisitos.

4.2. MÉTODO ESPIRAL El modelo de desarrollo en espiral (ver Figura No.2) es actualmente uno de los más conocidos. El ciclo de desarrollo se representa como una espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una actividad a otra. Cada ciclo de desarrollo se divide en cuatro fases:

9 1. Definición de objetivos: Se definen los objetivos. Se definen las restricciones del proceso y del producto. Se realiza un diseño detallado del plan administrativo. Se identifican los riesgos y se elaboran estrategias alternativas dependiendo de estos. 2. Evaluación y reducción de riesgos: Se realiza un análisis detallado de cada riesgo identificado. Pueden desarrollarse prototipos para disminuir el riesgo de requisitos dudosos. Se llevan a cabo los pasos para reducir los riesgos. 3. Desarrollo y validación: Se escoge el modelo de desarrollo después de la evaluación del riesgo. El modelo que se utilizará (cascada, sistemas formales, evolutivo, etc.) depende del riesgo identificado para esa fase. 4. Planificación: Se determina si continuar con otro ciclo. Se planea la siguiente fase del proyecto. Este modelo a diferencia de los otros toma en consideración explícitamente el riesgo, esta es una actividad importante en la administración del proyecto.

Figura No 2. Modelo de desarrollo en Espiral

4.3. METODO DE CODIFICAR Y CORREGIR Es un modelo poco útil, pero sin embargo bastante común. Se puede tener una especificación formal, o no tenerla. Cuando se utiliza éste método se empieza con una idea general de lo que se necesita construir, Se utiliza cualquier combinación de diseño, código, depuración y métodos de prueba no formales que sirven hasta que se tiene el producto listo para entregarlo.

10 Ventajas: No conlleva ninguna gestión; no se pierde tiempo en la planificación, en la documentación, en el control de calidad, en el cumplimiento de los estándares, o en cualquier otra actividad que no sea codificación pura. Requiere poca experiencia: cualquier persona que haya escrito alguna vez un programa está familiarizada con éste modelo. Para proyectos pequeños que se intentan liquidar en un tiempo breve, o para modelos como programas de demostración o prototipos desechables, el modelo codificar y corregir puede ser útil. Desventajas: * El modelo resulta peligroso para otro tipo de proyectos que no sean pequeños. * Puede que no suponga gestión alguna, pero tampoco ofrece medios de evaluación del progreso. * No proporciona medios de evaluación de la calidad o de identificación de riesgos. 4.4. MÉTODO DE PROTOTIPO La construcción de prototipos representa una estrategia de desarrollo, cuando no es posible determinar todos los requerimientos del usuario. Este método contiene condiciones únicas de aplicación, en donde los encargados del desarrollo tienen poca experiencia o información, o donde los costos y riesgos de que se cometa un error pueden ser altos. Así mismo este método resulta útil para probar la facilidad del sistema e identificar los requerimientos del usuario, evaluar el diseño de un sistema o examinar el uso de una aplicación. El método del prototipo de sistemas consta de 5 etapas: 1. Identificación de requerimientos conocidos: La determinación de los requerimientos de una aplicación es tan importante para el método de desarrollo de prototipos como lo es para el ciclo de desarrollo de sistemas o análisis estructurado. 2. Desarrollo de un modelo de trabajo: Es fácil comenzar el proceso de construcción del prototipo con el desarrollo de un plan general que permita a los usuarios conocer lo que se espera de ellas y del proceso de desarrollo. 3. Utilización del prototipo: Es responsabilidad del usuario trabajar con el prototipo y evaluar sus características y operación.

11 4. Revisión del prototipo: Durante la evaluación los analistas de sistemas desean capturar información sobre los que les gusta y lo que les desagrada a los usuarios. 5. Repetición del proceso las veces que sea necesario. 4.5. MÉTODO DE ANÁLISIS Y DISENO ESTRUCTURADO Muchos especialistas en sistemas de información reconocen la dificultad de comprender de manera completa sistemas grandes y complejos. El método de desarrollo del análisis estructurado tiene como finalidad superar esta dificultad por medio de: a. La división del sistema en componentes b. La construcción de un modelo del sistema. El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.). Después de esto se puede desarrollar un diseño físico eficiente para la situación donde será utilizado. ¿Cuál es el modelo de proceso más adecuado? Cada proyecto de software requiere de una forma de particular de abordar el problema. Las propuestas comerciales y académicas actuales promueven procesos iterativos, donde en cada iteración puede utilizarse uno u otro modelo de proceso, considerando un conjunto de criterios (Por ejemplo: grado de definición de requisitos, tamaño del proyecto, riesgos identificados, entre otros). En la Tabla No. 1 se expone un cuadro comparativo de acuerdo con algunos criterios básicos para la selección de un modelo de proceso 6, la medida utilizada indica el nivel de efectividad del modelo de proceso de acuerdo al criterio (Por ejemplo: El modelo Cascada responde con un nivel de efectividad bajo cuando los requisitos y arquitectura no están predefinidos).

Funciona con

Produce

Modelo de

requisitos y

software

Gestión

proceso

arquitectura no

altamente

de riesgos

predefinidos

fiable

Permite correcciones sobre la marcha

Visión del progreso por el Cliente y el Jefe del proyecto

12 Codificar y

Bajo

Bajo

Bajo

Alto

Medio

Cascada

Bajo

Alto

Bajo

Bajo

Bajo

Espiral

Alto

Alto

Alto

Medio

Medio

corregir

Tabla No.1. Comparación entre modelos de proceso de software.

5. Papel de la comunicación en el desarrollo de software a la medida El proceso de desarrollo de software requiere de una comunicación clara, precisa y, un aspecto muy importante, eficiente. Cada eslabón de la cadena de montaje en un proyecto de desarrollo de software debe saber claramente cuál es su función, qué va a encontrar como materia prima para su fase, y qué espera la siguiente fase como resultado de su trabajo de una manera eficiente7. Los desarrolladores necesitan intercambiar información e ideas sobre el proyecto, a los directivos, y a los clientes de forma honrada, confiable y fácil. La información debe fluir de manera continua y rápida, debido a que el tiempo es un factor muy importante, una información ágil y veloz es clave para el éxito de un proyecto. Por otra parte, la existencia de una comunicación eficiente es indispensable para la retroalimentación, los miembros del equipo, en todos los niveles, deberían obtener una retroalimentación inmediata sobre lo que hacen para asegurar un proyecto eficaz. Los clientes, y los desarrolladores tienen que alcanzar una comprensión común de la meta del proyecto, y acerca del estado actual del mismo, sobre qué necesitan realmente los clientes y sus prioridades.

6

SENN, James A. (1992) Análisis y Diseño de Sistemas de Información. Segunda Edición. Editorial McGrawHill. México. 7 Chaverri, Gerardo. Entrevista: Desarrollo de Software a la medida. 2008

13

III. CONCLUSIONES

14 Desarrollo de software a la medida significa diseñar y programar un sistema informático para realizar una tarea o cumplir una función especifica. Existen diferentes modelos de ciclo de vida para el desarrollo de software. Los programas de ciclo de vida del software permiten la detección a tiempo de errores y reduce los costos de desarrollo. Las metodologías de desarrollo de Software indican como hacer más eficiente el desarrollo de sistemas de información. El método de cascada fundamenta el proceso de especificación, desarrollo, validación y evolución y las representa como fases separadas del proceso. El método de codificar y corregir no se pierde tiempo en la planificación, en la documentación, en el control de calidad, en el cumplimiento de los estándares. El análisis estructurado se concentra en especificar lo que se requiere que haga el sistema o la aplicación. No existe un método de desarrollo establecido para cada tipo de proyecto de software, el mismo debe elegirse de acuerdo a los requerimientos del sistema. La comunicación eficiente es un elemento necesario para el éxito de un proyecto de desarrollo de software a la medida. En costa Rica la mayoría de empresas que solicitan desarrollo de software a la medida corresponden a entidades financieras. Las empresas estadounidenses mantienen una mejor comunicación con los desarrolladores de software que las costarricenses.

15

IV. BIBLIOGRAFÍA

16 1. Herbsleb, James, Moitra, Deependra. “Global software Development”. IEEE Software, Vol. 18, No. 2, p. 16-20, Marzo/Abril, 2001.

2. Desarrollo de Software a la medida. consultado el 18 de septiembre del 2008; http://www.polarsoft.cl/desarrollo.html 3. Heeks, R. “Why information Systems Succeed or Fail”. Proc. Business Information ManagementConf., CD-ROM, Manchester Metropolitan Univ., Manchester, UK, 1998. 4. Valdis, Berzins and Lugi. Software Engineering with Abstractions. Primera Edición. Editorial Addison-Wesley Publishing Company, Inc., 1991. 5. Ciclo de vida del proceso de desarrollo de Software. Consultado el 19 de septiembre del 2008, http://www.ceroble.edu.gt/pcb/sa/bi/v_curso/mapoyo/informatica/ciclo.pdf 6. SENN, James A. Análisis y Diseño de Sistemas de Información. Segunda Edición. México, Editorial McGrawHill, 1992. 7. Chaverri, Gerardo. Desarrollo de software a la Medida (Entrevista). Empresa Avantica Technologies, San José, Setiembre, 2008.

17

V. APÉNDICES

18 Apéndice 1. Entrevista realizada a experto en desarrollo de software a la medida Persona entrevistada: Ing. Gerardo Chaverri Empresa: Avantica Technologies Puesto que desempeña: Project Manager Tiempo de trabajar en la empresa: 4 años Experiencia laboral: 10 años Fecha: 18 de setiembre 2008 1. Una breve descripción del trabajo de la empresa Avantica brinda soluciones a la medida para clientes especialmente de Estados Unidos, busca satisfacer necesidades de cualquier cliente, sin importar la naturaleza de la empresa. Desarrollan software sobre cualquier tecnología, por ejemplo la plataforma .Net de Microsoft o utilizando software libre, como es el caso de Linux, PHP, Java. 2. ¿Qué tipo de empresas son las que solicitan con mayor frecuencia soluciones? Como se dijo anteriormente, casi el 100% de los clientes de la empresa son empresas estadounidenses, las hay de dos categorías, las llamadas Start Up, que son aquellas organizaciones que están iniciando a operar (sin importar en que rama se desenvuelvan), en su mayoría solicitan desarrollo de sistemas de software desde cero. El otro tipo de empresa norteamericana que figura como cliente de Avantica son las de tamaño medio, que ya tiene una cierta trayectoria laboral, éstas solicitan normalmente que le realicen actualizaciones o que incorporen nuevas funcionalidades al software que ya utilizan. A nivel nacional, la minoría de clientes de la empresa, corresponde en su totalidad a empresas financieras. * En este punto resulta importante destacar el hecho de que el desarrollo de software a la medida no necesariamente implica iniciar un proyecto o sistema desde cero, por el contrario, está sumamente relacionado con la actualización y mejora de software existente.

19 3. ¿Qué tipo de profesionales son aptos para el desarrollo de software a la medida? Ingenieros en cualquier rama de la programación, pueden ser Ing. En computación, Ing. En sistemas, por mencionar algunos ejemplos. El grado mínimo que acepta la empresa para contrataciones es de Bachillerato universitario. 4. ¿Hacia que áreas de las empresas que solicitan software a la medida van enfocados los proyectos? Los proyectos, en ocasiones van dirigidos a la relación que mantiene la empresa con los clientes, por ejemplo proveer interfaz gráfica para establecer contacto, este es el caso en que la organización solicitante maneja varios productos. Por otra parte, normalmente se trabaja con compañías que tienen un solo producto y todo se enfoca en EL PRODUCTO, la compañía depende de ese producto único y todos los esfuerzos van dirigidos a él. 5. ¿De qué manera logra la empresa definir los equipos de trabajo, la cantidad de personas y estimar el costo de un proyecto determinado? Con base en los requerimientos del cliente se definen las tareas necesarias para desarrollar el proyecto con éxito, basándose en las tareas requeridas es posible conocer el tiempo (en horas-hombre) necesario para desarrollarlas, y con base en el tiempo necesario se asignan los recursos (los recursos asignados para cada proyecto incluyen todos los costos directos e indirectos, entiéndase mano de obra directa e indirecta, papel, energía, etc.). el costo en recursos por hora-hombre ya está definido en la empresa. 6. ¿Cuáles son las etapas de desarrollo de un proyecto? El primer paso es el contacto inicial con el cliente (Dpto. de Ventas), continuando con la asignación de un Project manager (Dpto. de Dirección de Desarrollo), quien se encarga de estudiar el caso para ver si se toma como proyecto o no, si es aprobado como proyecto a desarrollar, el siguiente paso consiste en definir los requerimientos, seguido de la etapa de planeación, donde se evalúan diferentes planes y se asignan recursos, una vez seleccionado; se ejecuta el plan y de ser necesario se ejecutan cambios. El desarrollo puede llevarse a cabo por fases o como un todo, si es por fases se sigue este mismo procedimiento para cada una de

20 ellas y al final de cada una de realiza un cierre parcial. El finalizar el proyecto completamente, se culmina con la etapa de cierre de proyecto. 7. Diferencias importantes entre los clientes estadounidenses y costarricenses. Las empresas norteamericanas son muy concientes de la importancia de la comunicación exitosa con el desarrollador, por eso siempre asignan un responsable del proyecto dentro de la organización, que se involucra de lleno en el desarrollo del mismo, se mantiene en mucha y constante comunicación y es el único contacto de la empresa desarrolladora, lo que facilita la comunicación y la hace más veraz, eficiente y efectiva. En el caso de las empresas ticas por el contrario, no existe un responsable dentro de la organización, por lo tanto no existe un grado de involucramiento importante, lo que dificulta la comunicación y promueve la modificación de planes, así como la determinación deficiente de los requerimientos. Además en nuestro país, se debe luchar contra la burocracia que impera en todas las empresas para mantener relaciones cliente - proveedor.

Related Documents

Trabajoinvestigacion
October 2019 3