El Ciclo de Vida del Software: Desde la Idea hasta la Realidad
El software es conocido como los programas informáticos que hacen posible la ejecución de tareas específicas dentro de un dispositivo. Por ejemplo: aplicaciones, sistemas operativos, juegos, programas, navegadores web, etc. Como todo en la vida, el software también cuenta con un ciclo de vida, el cual consiste en el proceso que se lleva a cabo para el desarrollo, explotación y mantenimiento de un producto de software. Este ciclo abarca desde la definición de necesidades hasta su uso.
Consta de 7 etapas; Definición de necesidades, análisis, diseño, codificación, pruebas, validación y mantenimiento y evolución. Cada una de las etapas son sumamente importantes, pues en caso de fallas alguna etapa, podría presentar errores en todo el proceso. Aquí no hay un inicio como tal, pues se puede comenzar desde cualquier fase dependiendo de que tan avanzada vaya la creación del software.
A continuación, se explicará detalladamente cada una de las fases.
DEFINICIÓN DE NECESIDADES
Esta etapa se constituye por 3 fases: comunicación, recolección de requisitos y estudio de viabilidades.
Primeramente, la comunicación, en esta fase el usuario inicia la petición de un producto de software determinado, se contacta al proveedor del servicio y se negocian las condiciones que deberá cumplir dicho software.
En la recolección de requisitos, el equipo intenta conseguir la mayor cantidad de información posible sobre lo que se requiere para el desarrollo del software. Los requisitos de agrupan en: requisitos para usuarios, requisitos funcionales y requisitos del sistema. Se lleva a cabo por diferentes medios: Estudiando el software y el sistema en donde se vaya a llevar a cabo, entrevistando a los usuarios y desarrolladores del software consultando en base de datos y recabando información por encuestas.
Después entra el estudio de viabilidad. Luego de la recolección de requisitos, el equipo idea un plan para procesar el software. Se analiza si el software puede cubrir todos los requisitos del usuario o si hay posibilidad de que el software ya no sea necesario crearlo desde cero, pues existen los softwares de código abierto (software con código fuente que cualquiera puede inspeccionar, modificar y mejorar). Se investiga si el proyecto es viable financieramente, prácticamente y a nivel tecnológico para que la organización acepte la oferta (existen varios algoritmos que ayudan a los desarrolladores a concluir si el proyecto es factible o no).
En esta etapa se traza el plan y se intenta crear el mejor y más conveniente modelo de software para el proyecto. Se incluye el entender las limitaciones del producto; el aprendizaje de los problemas relacionados con el sistema; cambios que se requieren en sistemas ya existentes con antelación, identificando y dirigiendo el impacto del proyecto a la organización y personal. Se analizan posibilidades del proyecto y se planifica tiempos y recursos correspondientes.
En las etapas del ciclo existen roles quienes cumplen ciertas responsabilidades para llevar a cabo su desarrollo, en este caso, en la etapa del análisis del sistema está el rol: analista de sistemas. Dentro de sus responsabilidades se encuentran:
- Realizar análisis del problema (entender necesidades del cliente y alcance el software).
- Definir alcance del software.
- Entender las necesidades del cliente y establecer características para satisfacerlas.
- Administrar los cambios a los requerimientos durante el proyecto.
- Convertir escenarios a objetivos.
- Elaborar modelo de desarrollo.
DISEÑO DE SOFTWARE
La siguiente etapa, es diseñar el producto con ayuda de la información recabada en la definición de requisitos y análisis. Los inputs (aportaciones) de los usuarios y los resultados de la información hecha en las etapas anteriores serán aportaciones base de la etapa actual. El output (resultado) de esta etapa toma la forma de 2 diseños; el diseño lógico y el diseño físico. Los ingenieros crean metadatos, diagramas dilógicos, diagramas de flujo de datos, y en algunos casos pseudocódigos.
En esta etapa entra el rol de diseñador, el cual cuenta con las siguientes responsabilidades:
- Diseñar los elementos de la arquitectura.
- Revisar elementos implementados.
- Investigar los elementos multimedia que serán utilizados en el proyecto.
- Diseñar el paquete del proyecto final.
- Diseñar interfaz de usuario.
- Apoyar en el desarrollo del proyecto.
CODIFICACIÓN
Esta etapa es mayormente conocida como "Etapa de programación". La implementación del diseño de software empieza con el lenguaje de programación que más convenga dependiendo el caso, desarrollando programas ejecutables y sin errores de manera eficiente.
Aquí entra el rol del programador, quién cumple con las responsabilidades de ser el encargado de traducir en el código las especificaciones del sistema. Debe conocer los diferentes lenguajes de programación o encontrar el indicado para el proyecto y aprenderlo. También se encarga de depurar errores, implementar nuevas funcionalidades o mantener de forma general las aplicaciones cuando los necesiten.
PRUEBAS
Se estima que el 50% de todos los procesos de desarrollo de software deberían ser evaluados, pues los errores pueden arruinar el software tanto a nivel crítico y hasta el punto de ser eliminado. Las pruebas de Software se hacen mientras se codifica y suelen hacerlo los desarrolladores y otros expertos evaluadores a varios niveles. Esto incluye evaluación de módulos, evaluación del programa, evaluación del producto, evaluación interna y finalmente evaluación con el consumidor final.
En esta etapa se encuentra el rol tester, quien se encarga de asegurar que los requisitos definidos por el arquitecto de software se cumplan en la implementación del producto o servicio realizada por los desarrolladores y programadores. Es el responsable de aplicar diferentes métodos de testeo junto a los programadores. Informará todos los errores encontrados durante la fase de pruebas.
IMPLEMENTACIÓN
Aquí se instala el software en máquinas de clientes. A veces, el software necesita instalar configuraciones para el consumidor final con posterioridad. El Software se evalúa por su adaptabilidad y su portabilidad, en cuanto a las cuestiones relacionadas con la integración y conceptos asociados, se resuelven durante la implementación.
El integrador, tiene como responsabilidades realizar el plan de integración, seleccionar los componentes a ser entregados, ensamblar el entregable, probarlo, etc.MANTENIMIENTO Y FUNCIONES
Esta etapa confirma el funcionamiento del software en términos de más eficiencia y menos errores. Si se requiere, los usuarios se forman, o se les presta documentación sobre como operar y como mantenerlo en funcionamiento. El software se mantiene de forma temprana actualizando el código en acorde a los cambios que tienen lugar en entornos del usuario o tecnológicos. Esta etapa puede que tenga que encarar retos originados por virus ocultos o problemas no identificados del mundo real.El jefe de proyecto es la persona que gestiona el buen funcionamiento del proyecto, controla y administra los recursos (tanto personales como económicos) con el fin de cumplir el plan y objetivos definidos. Se encarga de que funcione según lo establecido, resolver desviaciones en el plan y hacer que los diferentes equipos del proyecto se sincronicen y trabajen juntos (distribución de tareas, flujo de actividades, tareas administrativas, contrato con el cliente, dirección y control). Es la cara visible frente al cliente, quien informa avances y estado del proyecto. Su misión es cumplir con las expectativas de cliente.En conclusión, el ciclo de vida del software es un proceso continuo y dinámico que garantiza el desarrollo, implementación y mantenimiento efectivo de aplicaciones informáticas. Desde la concepción de la idea hasta la entrega del producto final, cada etapa es crucial y requiere habilidades técnicas, experiencia y colaboración efectiva entre los equipos de desarrollo y los stakeholders (partes interesadas que pueden influir o verse afectadas por el proyecto que se está trabajando). Al comprender y seguir este ciclo de vida, las organizaciones pueden crear software confiable y de alta calidad que satisfaga las necesidades de sus usuarios y clientes.
Comentarios
Publicar un comentario