ciclo de vida
proyecto Software
En este artículo, debemos adentrarnos a cierta información un poco más técnica del desarrollo de software… trataremos de que no sea abrumadora, pero si es muy necesaria para poder entender un poco del tema
Empecemos por la Definición del Ciclo de Vida de un software…
La Norma ISO 12207 ISO, le define como un marco de referencia que contiene las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando desde la definición hasta la finalización de su uso.
En palabras más sencillas…
- Es el Sistema o proceso organizativo por medio del cual se conectan las diferentes Fases que debe atravesar un proyecto software.
- cuya metodología debe ser una práctica articulada para Ejecutar, Gestionar y Administrar el proyecto y así llevarlo a cabo con altas posibilidades de éxito.
Metodologías utilizadas
No vamos a explicar detalles técnicos de estas metodologías (si eso es lo que desea en el buscador de Google lo encontrarás), solo vamos a explicar a grosso modo las mismas y su influencia en el desarrollo de software, veamos…
- Secuencial o también llamada “En Cascada”: Es la metodología más antigua y utilizada para el desarrollo de software, parte desde una toma de requisitos (Requerimientos) y es criticada por su rigurosidad ya que hasta que no se supere una etapa no se pasa a la otra y sus posibles falencias solo podrán detectarse durante la etapa de prueba y la solución de las mismas podrían generar sobrecostos al cliente si se detecta que fue por falta de rigurosidad de sus Requerimientos. Aunque cada desarrollador decide que metodología usar, ésta es recomendable para pequeños proyectos que se puedan planificar concienzudamente desde su inicio.
- La metodología Ágil o Iterativa, catalogada y criticada esta metodología por su aparente “indisciplina” ya que admite repetir una y otra vez desarrollos según cambien las circunstancias y “gustos”. Esta no es una metodología muy atractiva para los desarrolladores de software, ya que permite en muchas ocasiones que el cliente se exceda en sus demandas, por eso es más recomendable esta metodología para empresas de software que desean sacar un producto software robusto o especializado al mercado, limitando la influencia de un cliente directo, única y exclusivamente a sus conocimientos sobre el tema objeto del desarrollo.
METODOLOGIA SECUENCIAL
METODOLOGIA AGIL
- También llamada en Cascada
- Orden Riguroso de Etapas
- Requisitos Plenamente identificados
- Recomendable para pequeños y medianos proyectos
- Define Presupuesto y fechas límites
- Cerrado exclusivamente a los requisitos (requerimientos)
- También llamada Iterativa
- Etapas repetitivas
- Requisitos cambiantes
- Recomendable para Grandes Proyectos
- Sus fechas y presupuestos son variables
- Abierto a nuevas funcionalidades
Cualquiera de las metodologías utilizadas por el desarrollador de software, es importante recordar que todo proyecto software debe ser Flexible y Escalable para el beneficio del producto software en sí, del cliente y mejor aún del Proveedor.
Características más Comunes
En un exitoso ciclo de vida de un proyecto software, generalmente se tendría que definir…
Elementos que lo Integran: Generalmente se identifican los siguientes elementos
a) Fases
- Agrupa las tareas a realizar las cuales deben ser verificables
- Tiempo de vida acorde a la magnitud de la misma
- Asignación de Recursos: Humanos – Financieros y materiales
b) Entregables: Son los productos intermedios que generan las fases. Pueden ser materiales (componentes, equipos) o inmateriales (documentos, software). Los entregables permiten evaluar la marcha del proyecto mediante comprobaciones de su adecuación o no a los requisitos funcionales y de condiciones de realización previamente establecidos. Cada una de estas evaluaciones puede servir, además, para la toma de decisiones a lo largo del desarrollo del proyecto.
c) Ciclo: tiempo de vida en que se lleva a cabo el proyecto
Observamos aquí un diagrama de un Proyecto Software con sus fases bien definidas.
Utilizando la metodología Secuencial, que es la más utilizada entre desarrolladores de software; Explicamos a continuación a que hace referencia cada Fase y las posibles tareas (entregables) que hacen parte de cada una de ellas, veamos…
1. Análisis de Necesidades
Respecto al análisis de necesidades, le invitamos a ver nuestro post “Antes de”…
-
¿Quién es más conocedor de sus necesidades si no el interesado que requiere una solución?
- El interesado deberá tomarse su tiempo para Analizar e identificar las deficiencias o problemas de su organización y señalar la causa raíz para buscar la solución más adecuada.
- Detectar con eficiencia cuáles son los procesos que realiza manualmente y que necesita automatizar, de esa manera podrá definir la solución software que en realidad necesita - En ocasiones el profesional/desarrollador interviene para identificar mejor las necesidades y así ayudarle al cliente/interesado a optimizar sus recursos
- Se recomienda hacer borradores escritos de sus necesidades y solicitar reunión con su desarrollador/proveedor de software para que este le ayude a resolver dudas técnicas que se pudieran presentar en la solución que ud requiere
2. Diseño de Especificaciones / Requerimientos
- De las notas - borradores y reuniones de la Fase 1 se desprende el documento final que es el Diseño de especificaciones (o levantamiento de Requerimientos), que generalmente es un documento escrito donde se detallan las necesidades del cliente y las soluciones que precisa obtener del software
-
Recordando que generalmente se utiliza la metodología secuencial por el profesional, Se recomienda minuciosidad y detalle en el levantamiento de los Requerimientos
- No necesariamente los Requerimientos se utilizarán para crear un software nuevo, también se utiliza este recurso cuando un cliente requiere una nueva solución en un software ya implementado con anterioridad. - En ocasiones este diseño va acompañado de archivos complementarios que ayudarán al desarrollador a entender la solución que debe entregar, como imágenes, hojas de cálculo, etc…
- Es recomendable que sean enumeradas y plenamente identificadas cada una de las tareas que se deben realizar para llegar al producto final, con esto se podrá llevar control exacto si se llegan a detectar alguna falencia o complicación en el resultado del ejercicio.
- Se podría decir que en esta fase se presenta una sub-fase, que es la negociación del trabajo a realizar.
3. Ingeniería y Desarrollo
- El Desarrollador procederá crear la solución software requerida, basado en los Requerimientos obtenidos del punto 2
-
Ciclos de conocimiento técnico: Análisis / Diseño y Construcción
- Análisis: de todos los componentes que deben integrar la solución software requerida
- Diseño y Construcción: Programación en código de la solución requerida
4. Pruebas Internas y Rectificación
- El desarrollador siempre deberá realizar pruebas internas del producto software y así detectar que todo funcione como es el deber ser• El desarrollador siempre deberá realizar pruebas internas del producto software y así detectar que todo funcione como es el deber ser
- Si no el mismo se encargará de retroalimentar para rectificación de la situación
-
Adicionalmente realizará Documentación:
- Técnica de lo realizado en Backend de la solución entregable
- Explicación al usuario final del modo y forma en que se debe utilizar la solución
5. Implantación y Puesta en Marcha
- Implantación: Proceso por el cual se instauran una o más novedades tecnológicas en una organización, como resultado de una actuación que deriva de su plan estratégico.
-
Es recomendable que la solución sea implantada en 1 equipo de prueba para que el usuario encargado realice las verificaciones y comparaciones según el diseño o requerimiento establecido en Fase 2.
- Esto impide perturbaciones en los procesos cotidianos de los sistemas informáticos ya establecidos antes de la nueva inclusión
- Generalmente se define lo anterior con la debida anticipación a la implantación - Si el usuario detecta alguna situación que no esté acorde con el requerimiento establecido podrá presentar sus descargos al desarrollador para que sea verificado y presente sus propios descargos o modifique según el caso
- Si todo esta ok, se ampliará la implantación de la solución a todo el sistema (lo que comúnmente se llama Actualización) para el uso de todos los usuarios que lo requieran
6. Explotación
- Tiempo en el cual la solución software es explotada a toda marcha por los usuarios encargados de los procesos
- Al mismo tiempo el proveedor realiza el respectivo seguimiento a la solución software implementada para dar estabilidad a la misma.
- Garantía dada por el Desarrollador: Este tiempo es aprovechado para brindar soporte y acompañamiento técnico al usuario respecto al buen uso de la solución software entregada.
- Aún en esta etapa, si se detectan anomalías el desarrollador procederá a su respectiva verificación y solución si es el caso.
7. Mantenimiento y Actualización
- Usualmente el proveedor del software o desarrollador brinda este servicio con costo adicional, aunque en ocasiones disponen de actualizaciones free.
- Es un servicio de mucha utilidad al usuario final, ya que esto garantizará que los usuarios puedan seguir siendo acompañados en sus solicitudes y situaciones que se les presenta en los procesos del día a día
- También es de suma importancia que contrate este servicio al proveedor/desarrollador, ya que esto garantizaría que su herramienta software no quede obsoleta con el tiempo.
Utilizando la metodología Secuencial, que es la más utilizada entre desarrolladores de software; Explicamos a continuación a que hace referencia cada Fase y las posibles tareas (entregables) que hacen parte de cada una de ellas, veamos…
Entera Satisfacción