Tema 5: Pasos para la solución de un problema de software
La "solución al problema" a través de la computadora consiste en un proceso que, generalmente expresado en un lenguaje natural y, en términos de dominar el problema, le permite desarrollar un programa que resuelva dicho problema.
Este proceso exige los siguientes pasos:
- Análisis
- Diseño
- Codificación
- Prueba
- Mantenimiento
- Prueba de Escritorio
ANÁLISIS
En esta fase se procede a analizar las necesidades que tienen los usuarios del futuro sistema software y que deben ser satisfechas mediante el funcionamiento del mismo. El cliente que realiza el encargo expone sus necesidades, requisitos que debe cumplir el software y la empresa que va a realizarlo los recoge y analiza. De acuerdo con esto, elabora una especificación precisa del sistema a desarrollar
DISEÑO
Se investiga la fase las posibles opciones de implementación para el
software construido para
determinar la estructura general de lo mismo. El diseño es una etapa
compleja, y el proceso
debe ejecutarse repetidamente.
La solución inicial puede no ser la más apropiada, por lo que en ese
caso necesita mejorarla. Sin
embargo, hay un catálogo de patrones de diseño muy conveniente que
recopila errores de que
otras personas no caen en la misma trampa. Se investiga la fase las
posibles opciones de
implementación para el software construido para determinar la estructura general de lo mismo.
Durante esta la etapa se realizan las tareas que
comúnmente se conocen como programación;
que consiste, esencialmente, en llevar a código fuente,
en el lenguaje de programación elegido,
todo lo diseñado en la fase anterior, haciendo uso
de prototipos, así como pruebas y ensayos
para corregir errores. Esta tarea es llevada a cabo
por el programador, que es seguida por las
pautas que se imponen al diseño y siempre teniendo
en cuenta los requisitos funcionales y no
funcionales
de
trabajo y el idioma seleccionado, a saber:
•
Código fuente
•
Código objeto
•
Código ejecutable
Se
propusieron varios métodos de programación, cuyo propósito es mejorar tanto el
proceso de
creación
de software como de mantenimiento. Entre ellas, se pueden mencionar las
siguientes:
•
programación estructurada
•
programación modular
•
programación orientada a objetos (POO) programación declarativa
PRUEBA
Las pruebas pueden llevar mucho tiempo. Las pruebas
manuales o bajo demanda pueden ser suficientes para compilaciones pequeñas. Sin
embargo, para sistemas más grandes, las herramientas se utilizan con frecuencia
para automatizar tareas. Las pruebas automatizadas ayudan a los equipos a
implementar diferentes escenarios, probar diferenciadores (como mover
componentes a un entorno de nube) y obtener comentarios rápidamente sobre lo
que funciona y lo que no.
Un buen enfoque de prueba abarca la interfaz de
programación de aplicaciones (API), la interfaz de usuario y los niveles del
sistema. Además, cuantas más pruebas se automaticen y se ejecuten antes, mejor.
Sin embargo, las soluciones de los proveedores ofrecen funciones que pueden
optimizar las tareas clave de gestión de pruebas, como:
- Prueba continua.
- Gestión de la configuración.
- Virtualización de servicios.
- Seguimiento de defectos o errores.
- Métricas e informes.
Mantenimiento
• Mantenimiento
adaptativo. Esto se centrará en la modificación del producto de acuerdo
con los cambios que pueden ocurrir tanto a nivel de software como de hardware.
Es el mantenimiento más común.
• Mantenimiento
correctivo. Concéntrese en la corrección de errores que pueden ocurrir cuando
se entrega el producto.
• Mantenimiento
perfectivo. Perfeccionamiento de la aplicación tras el uso y descubrimiento de
nuevas mejoras que pueden ser incluidas.
• Mantenimiento preventivo. Modificación del producto para mejorar la usabilidad, sin alterar sus especificaciones.
Prueba de Escritorio
Una prueba de escritorio es un tipo de prueba algorítmica que consiste en la validación y verificación del algoritmo a través de la ejecución de las sentencias que lo componen (proceso) para determinar sus resultados (salida) a partir de un conjunto inicial determinado de elementos (entrada).
Por simplicidad y para facilitar la comprensión de la prueba se repetirá aquí la versión en diagrama de flujo, pero se puede y recomienda consultar también la versión en Pseudo código.
Asegúrese de comprender el proceso descrito y genere usted mismo cada uno de los valores descritos para corroborar lo aquí expuesto. También utilice ahora los mismos valores, pero intercambiados, ¿qué sucede? ¿qué secuencia de valores se genera? ¿cuál es el MCD? ¿cuál es ahora el MCD de 15 y 10? ¿cuál es el MCD de 10 y 15?
Pruebe con otros valores hasta que comprenda el funcionamiento del algoritmo, y compruebe los resultados de sus pruebas de escritorio con los algoritmos descritos en diagrama de flujo y pseudo código respectivamente.