Software Development
El desarrollo de software es el conjunto de actividades que resultan en productos de software. El desarrollo de software puede incluir investigación, modificación, reutilización, reingeniería, mantenimiento, o cualquier otra actividad involucrada en productos de software. Especialmente la primera fase en el proceso de desarrollo de software puede incluir muchos departamentos, incluidos el marketing, la ingeniería, investigación y desarrollo y la gestión general.
Hay diferentes enfoques para el desarrollo de software. Algunos toman un enfoque más estructurado, basado en la ingeniería para el desarrollo de soluciones de negocio, mientras que otros pueden tener un enfoque más gradual, en que el software evoluciona a medida que se desarrolla pieza por pieza. La mayoría de las metodologías comparten una combinación de las siguientes etapas de desarrollo de software:
- La investigación de mercado
- Recopilación de requisitos para la solución de un negocio propuesto
- Analizar el problema
- Elaboración de un plan o diseño para el software base de solución
- Implementación (codificación) del software
- Probando el software
- Despliegue
- Mantenimiento y corrección de errores
Estas etapas a menudo se refieren conjuntamente como el ciclo de vida de desarrollo de software, o SDLC (software development lifecycle). Diferentes enfoques para el desarrollo de software pueden llevar a cabo estas etapas en diferentes órdenes, o dedicar más o menos tiempo a las diferentes etapas. El nivel de detalle de la documentación producida en cada etapa de desarrollo de software también puede variar. Estas etapas pueden llevarse a cabo a su vez (enfoque basado en "cascada"), o se puede repetir durante varios ciclos o iteraciones (un enfoque más extremo). El enfoque más extremo por lo general implica menos tiempo dedicado a la planificación y documentación, y más tiempo dedicado a la codificación y desarrollo de pruebas automatizadas. Los enfoques más extremos también promueven las pruebas continuas durante todo el ciclo de vida de desarrollo. Los enfoques basados en "cascada" o los más extremos intentan evaluar la mayoría de los riesgos y desarrollar un plan detallado para el software antes de comenzar la implementación (codificación), y evitar cambios considerables en el diseño y re-codificación en etapas posteriores del ciclo de vida de desarrollo de software.
Hay importantes ventajas y desventajas en las distintas metodologías, por lo que el mejor enfoque para resolver un problema utilizando el software a menudo depende del tipo de problema. Si el problema es bien entendido y una solución puede ser efectivamente planeada de antemano, el enfoque basado en "cascada" puede trabajar mejor que el resto. Si, por otra parte, el problema es único (al menos para el equipo de desarrollo) y la estructura de la solución de software no es prevista fácilmente, entonces un enfoque incremental más extremo puede funcionar mejor. Un proceso de desarrollo de software es una estructura impuesta sobre el desarrollo de un producto de software. Existen varios modelos para estos procesos, cada uno de ellos enfocados para describir una variedad de tareas o actividades que tienen lugar durante el proceso.
No hay comentarios:
Publicar un comentario