El ciclo de vida del software es el conjunto de fases que deben seguirse para realizar un programa de computadora.
Planteamiento del problema <-> Análisis del problema <-> Diseño del algoritmo <-> Implementación o codificación <-> Pruebas y validación <-> Documentación del programa <-> Mantenimiento.
Ejemplo:
Problema: Se requiere desarrollar un programa que calcule el área de un rectángulo con base b y altura h.
-
Plantemiento del problema:
Es la primera fase del ciclo, consiste únicamente en elegir el problema que se quiere resolver para comenzar su análisis.
-
Análisis del problema:
¿Qué hace el programa?
Debe definirse de manera clara y concisa el problema en cuestión, se debe establecer el ámbito del problema, las características, limitaciones y modelos de lo que se desea resolver. Es un paso que debe conducir a una especificación completa del problema en donde se describa cuáles son los datos requeridos para resolverlo (datos de entrada) y cuál es el resultado deseado (salida).¿Cuál es la salida deseada?
El área de un cuadrado.¿Qué métodos se pueden utilizar para llegar a la solución?
Se puede calcular con la sig. fórmula: Área = Base * Altura.¿Qué datos de entrada se requieren?
Los únicos datos que se requieren son: la medida de la base que se representa por b y la medida de la altura indicada por h.¿Qué datos o información adicional es necesaria para solucionar el problema?
No se requieren en este caso.¿Existe algún problema o condiciones que deban cumplirse?
Las únicas restricciones son que las medidas de la base y altura sean mayores a cero. -
Diseño del algoritmo:
- Obtener la medida de la base (b) y la altura (h)
- Calcular: área = b * h
- Imprimir el resultado (área)
-
Implementación
-
Validación y pruebas
-
Documentación
-
Mantenimiento
Es en esta fase donde se define: ¿cómo el programa resuelve el problema?.
Para ello, se describe paso a paso la solución del mismo, lo cual se conoce como algoritmo.
Cuando el problema es grande se recomienda dividirlo en subproblemas más pequeños y resolver por separado cada uno de ellos. A esta metodología se le conoce como diseño descendente (top-down) o modular. Existen diferentes formas de representar un algoritmo algunas formales, como una fórmula matemática, o informales, como es el caso del lenguaje natural.
Ej: Algoritmo que calcula el área de un rectángulo:
Pseudocódigo:
El Algoritmo debe traducirse a un lenguaje de programación (como por ejemplo C) para obtener un programa fuente que se traduzca a lenguaje de máquina para que sea ejecutado por la computadora.
Sirve para verificar que son correctos tanto el algoritmo como el código.
Existen diferentes formas de probar que la solución es correcta, algunas de ellas:
formales: para garantizar que el programa o algoritmo siempre calcula el resultado deseado para cualquier conjunto de datos de entrada.
informales: sólo se prueba que funciona correctamente para algunos datos de entrada, tratando de encontrar posibles errores, en este caso no se puede garantizar el programa o algoritmo calcule la salida correcta para cualquier conjunto de datos.
En cualquiera, si se encuentra alguna falla se debe corregir y volver a realizar pruebas.
En este curso utilizaremos las pruebas de escritorio.
Cualquier proyecto de software por la complejidad que tiene requiere tanto las ideas principales como el desarrollo de principio a fin sea documentado, con el fin de que cualquiera puedan entender la lógica del programa y de ser necesario pueda modificarlos sin tantas complicaciones. Es común que si se desea modificar un programa y no se tiene información acerca de cómo fue construido sea más fácil volverlo a hacer que intentar entenderlo. En el desarrollo de software libre, la forma de entender que está haciendo cada uno y bajo que método es la documentación.
Como parte de la documentación también deben incluirse manuales de usuario y las normas de mantenimiento para que se haga un buen uso del software.
Una vez que fue terminada una primera versión del programa y ya está siendo utilizado, se actualiza y modifica para corregir errores no detectados o para cambiar y/o agregar una nueva función. Por ejemplo, se puede extender el programa que calcula el área de un rectángulo para que también calcule su perímetro.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.