Está en la página 1de 3

Tema 3 – Fundamentos algorítmicos

Proceso de creación de software


Ejercicio de proceso de creación de software siguiendo sus fases de desarrollo

Crear un algoritmo que calcule el volumen y la superficie de lotes de 100 esferas dado un radio

FASE 1: ESTUDIO DE VIABILIDAD

¿Es posible resolver el problema mediante software? ¿Es adecuada una solución
software? ¿El coste es asumible? ¿Soy capaz de hacerlo?

Respondiendo a preguntas como éstas analizo si es posible, viable y adecuado desarrollar una
solución software para un problema concreto. En el caso del ejercicio propuesto, el coste es
asumible y desde luego soy capaz de hacerlo, por lo que la solución mediante un programa es la
adecuada y es posible desarrollarlo.

FASE 2: ANÁLISIS DEL PROBLEMA

¿Entiendo el problema que me plantean resolver? ¿Qué me están pidiendo exactamente?


¿Lo tengo todo claro? ¿Tengo dudas? ¿Puedo suponer la información que no me dan?

Me piden desarrollar un programa que calcule y muestre el volumen de un conjunto de esperas


(100 a priori, que será un valor constante de momento) y su superficie, para un valor variable del
radio, que será introducido por el usuario. El volumen se dará en litros, y la superficie en metros
cuadrados, mientras que los radios se introducirán en cm.

FASE 3: DISEÑO DE ALTO NIVEL O ESPECIFICACIÓN DE LA SOLUCIÓN

¿Qué es lo que va a hacer el algoritmo? ¿Cómo lo va a hacer? ¿Cuáles serán las entradas
del software? ¿Y qué salidas debe dar? ¿Cómo se relacionan las salidas que dará el programa con
las entradas que recibe?

En esta fase no nos fijamos en el algoritmo, sino en describir sus especificaciones, esto es: qué
entradas tendrá, qué salidas arrojará y cómo hará el programa para generar las salidas a partir de
las entradas (especificar cómo se pasará de la entrada a la salida).

El algoritmo tendrá como única entrada: el radio de las esferas (en cm) y como salidas tendrá el
volumen de las 100 esferas (en litros), y la superficie de las 100 esferas (en metros cuadrados).
Para pasar de las entradas a las salidas, usaremos las fórmulas del volumen y superficie de una
esfera, multiplicando el resultado final por 100.

Volumen (esfera) = 4/3 * pi * radio3 / 1000 (lts).


Superficie (esfera) = 4 * pi * radio2 / 10000 (m2).
Tema 3 – Fundamentos algorítmicos
Proceso de creación de software
FASE 4: DISEÑO DETALLADO O DE BAJO NIVEL

¿Qué solución concreta le doy al problema? ¿Qué algoritmo propongo?

Se detallan las especificaciones del problema y se escribe el algoritmo que lo resuelve de forma
secuencial, concreta y lo más detallada y exacta posible (y por supuesto, finita). Si el programa es
complejo, lo dividiré en módulos o funciones que especificaré por separado.

Pseudocódigo:

Entrada: radio_esfera, num_esferas (constante = 100 bolas)


Salidas: volumenTotal, superficieTotal
INICIO
1. Pido radio_esfera (en cm) y establezco valor del número esferas = 100
2. Calculo vol_esf = 4/3 * pi * radio_esfera3 # Unidades en cm cúbicos
3. Calculo sup_esf =4 * pi * radio_esfera2 # Unidades en cm cuadrados
4. Calculo volumenTotal = num_esferas * vol_esf / 1000 # Unidades en litros
5. Calculo superficieTotal = num_esferas * sup_esf / 10000 # Unidades en metros2
FIN

FASE 5: IMPLEMENTACIÓN

¿Qué lenguaje de programación es el más adecuado para implementar el diseño? ¿Qué


entorno de desarrollo utilizaré? ¿Cuáles son los detalles de implementación a abordar?

Código Python del algoritmo:

“““
- Programa que calcula el volumen y la superficie de un número fijo de
esferas (100) dado su radio.
- Autor: José Manuel Chaves González
- 10/10/2018. Versión 1.0
“““
from math import pi

num_esferas = 100 # 100 bolas por lote


radio_esfera = eval (input ("Introduzca el radio de la esfera que conforma
la bola, en centímetros (valor entre 1 y 100): "))

vol_esfera = 4 / 3 * math.pi * radio_esfera ** 3 # en cm3


sup_esfera = 4 * math.pi * radio_esfera ** 2 # en cm2

volTotal = num_esferas * vol_esfera / 1000 # en dm3 = litros


supTotal = num_esferas * sup_esfera / 10000 # en m2

print ("\n El volumen total de las ", num_esferas, "bolas será de: ",
volTotal, "litros, y su superficie será de: ", supTotal, "metros^2)")
Tema 3 – Fundamentos algorítmicos
Proceso de creación de software

FASE 6: TESTEO DEL PROGRAMA

¿Qué batería de pruebas debe superar el programa para que se considere correcto
semánticamente? ¿Cuáles son los valores permitidos por el programa? ¿Controlo los valores de
entrada que puedan producir errores? ¿Funciona bien en los valores extremos permitidos ¿Cómo
controlo y corrijo los errores encontrados?

Debo controlar que la entrada proporcionada por el usuario sea la correcta. El valor del radio debe
ser un número decimal entre 1 y 100 cm (indico al usuario que ese debe ser el valor, y compruebo
con un if que así sea). Si se introduce cualquier valor que no sea éste (ya sea un número negativo y
un valor fuera del rango), el programa debe mostrar error y no hacer ningún cálculo.

FASE 7: IMPLANTACIÓN Y MANTENIMIENTO DEL PROGRAMA

¿He escrito un manual del usuario adecuado para que cualquier persona pueda utilizar mi
programa? ¿He enseñado y me he asegurado de que los usuarios sepan utilizarlo adecuadamente
para que los datos que introduzcan sean los correctos y sepan interpretar la salida que arroja el
programa? ¿Saben los usuarios interpretar los mensajes de error arrojados por el programa?
¿Tenemos en cuenta las presentes y futuras necesidades de los usuarios para modificar nuestro
programa? ¿Tenemos en cuenta cómo mejoraremos nuestro programa para que futuras
versiones se adapten a posibles nuevas necesidades o requisitos?

En esta fase se enseñará al usuario su manejo. El programa debe pedir un único número: El
número de centímetros de radio que tendrán las esferas que se fabricarán. La salida arrojada por el
programa será el volumen de las 100 esferas en litros y su superficie en metros cuadrados. Esto se
le explica al usuario y se le entrega un breve manual de usuario donde se describen algunos
ejemplos de funcionamiento.

Una posible mejora sería que el usuario también pudiera introducir el número de esferas sobre las
que se realiza el cálculo, también una interfaz gráfica donde apareciera dibujada la esfera y se
rellenaran datos mediante campos y se mostrara el resultado de forma gráfica.

También podría gustarte