Sunteți pe pagina 1din 9

Virney Hernández Villarreal

Algoritmo y lenguaje de Programación


A 21 de marzo del 2019

Metodología para el diseño de software: Top Down, Bottom up,


modular y programación estructurada
¿Qué es una metodología de desarrollo de software? Una metodología de
desarrollo de software no es más que una serie de pasos que se realizan de forma
rigurosa tal que su resultado a partir de unos requisitos nuevos o modificados sea
un software nuevo o modificado. Se puede ver como una caja negra, como muestra
la siguiente imagen:

Esta nos permite responder a cuatro preguntas básicas: ¿Qué hacen los
participantes del proyecto? ¿Quién participa en su desarrollo? ¿Cómo participan los
anteriores? ¿Cuándo se realizan sus partes? Personas realizan actividades según
sus roles a partir de resultados parciales (conocidos como artefactos) que son
partes necesarias para realizarlas o resultados parciales o totales de éstas. Estas
actividades toman un orden y una estructura temporal entrelazada definida por la
metodología en cuestión.

¿Qué nos aporta una metodología de desarrollo de software?


La gracia de una metodología es que aporta una garantía de calidad.
¡IMPORTANTE! Un producto de software es de calidad si cumple rigurosamente
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

con todos y cada uno de sus requisitos. Es decir, calidad = requisitos satisfechos.
Gracias a esto podemos medir la calidad de un producto basándonos en los
requisitos iniciales. También nos aporta una forma de estimar y controlar costes. Así
podemos saber cuánto vamos a tardar en realizarlo y si nos sale o no rentable
llevarlo a cabo antes de realizar la inversión completa de tiempo, dinero y esfuerzo.
También evita una gran parte de los esfuerzos perdidos en rectificar fallos que se
pueden evitar utilizando una metodología adecuada. Al ser un proceso estructurado
también nos organiza la forma en la que el proyecto va a ser realizado, obligando a
revisar que los resultados sean los correctos antes de proseguir y marcando metas
intermedias para controlar el avance del proyecto. Así pues, se logra una mayor
eficiencia de recursos, es decir, se invierte lo mínimo para obtener lo máximo a
cambio. Para que el proceso sea efectivo, éste debe ser aplicado con rigor.

¿Y qué hay del ciclo de vida del software?


El ciclo de vida del software es el conjunto de etapas que sigue un proyecto de
software desde su concepción hasta su finalización y cierre, inclusive los
mantenimientos (es decir, cambios o ajustes que puedan producirse una vez está
implementado, nuevas versiones, etc.). Aquí se puede observar un ejemplo de ciclo
de vida del software. Éste se inicia con la definición de necesidades y sigue un flujo
cíclico hasta retornar al punto de origen. A continuación mostraremos diversos
enfoques que puede tomar una metodología de desarrollo de software y
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

Cascada
Como se puede observar, se trata de un enfoque secuencial. En este caso,
cualquier fallo de las fases anteriores será arreglado en la fase actual, y se
procederá siempre hacia adelante, sin volver a pasar por ninguna de las fases
anteriores. Cascada: Como se puede observar, se trata de un enfoque secuencial.
En este caso, cualquier fallo de las fases anteriores será arreglado en la fase actual,
y se procederá siempre hacia adelante, sin volver a pasar por ninguna de las fases
anteriores.

Prototipaje
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

En este caso el enfoque es iterativo.


Se basa en realizar pequeños
prototipos finales de la aplicación de
forma que sus funcionalidades se
construyen encima de la versión
anterior, hasta llegar al producto
definitivo y su entrega al cliente
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

Metodología de diseño Bottom Up

“Esta metodología consiste en reunir diferentes sistemas que conformaran un todo.


Los elementos individuales son especificados en gran detalle, los componentes se
van uniendo unos con otros hasta conformar un sistema final, que se logra al llegar
al nivel superior”3. Esta estrategia asemeja al modelo “semilla”, en el cual se parte
de algo pequeño que va creciendo hasta llegar a un sistema terminado y complejo.

En el Bottom Up no se necesita tener una imagen clara del estado final del proyecto,
sino que para empezar basta con una característica en particular. Es así como se
van juntando las pequeñas piezas que luego conformaran un gran sistema, formado
por sub sistemas. Esta metodología tiene sus desventajas, por ejemplo se necesita
mucha intuición para decidir la funcionalidad que se le va a dar a cada módulo. Por
esto si se está trabajando con un sistema existente es más fácil desarrollar el
proyecto que si se empieza desde cero.
Otros aspectos negativos son:
La verificación a través del proceso se hace muy difícil, casi imposible una vez se
está trabajando con grandes ensambles. Por lo que se debe invertir mucho tiempo
en la revisión. Necesitándose tiempo adicional para encontrar el error y corregirlo.
Al emplear un diseño Bottom Up, poca o ninguna exploración es hecha
previamente, lo que hace que las mejoras posibles en el diseño sean obviadas.
“Cualquier error o problema que sea encontrado en el momento de ensamblar el
sistema es más costoso de corregir, ya que involucra el rediseño de los bloques de
diseño”4. Además los procesos deben ser desarrollados en serie, lo que genera que
el tiempo para terminar el diseño sea más largo.
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

Metodología de diseño Top Down

Esta metodología es una estrategia para procesar información y conocimiento. Se


emplea en diferentes áreas como: diseño de circuitos, desarrollo de productos, y 5
IBID de software. Este último es el campo que más se ha beneficiado de esta
metodología, permitiendo desmenuzar los problemas en módulos que permiten que
los programadores trabajen de manera más eficiente, ya que los programas al estar
divididos son más fáciles de leer y así es posible identificar los errores. Además se
pueden reutilizar los módulos que sean comunes creando así programas
modulares6. Lo que permite ahorrar tiempo y dinero, además al administrador del
proyecto se le hace más fácil hacer seguimiento del progreso. Una vez el programa
está terminado el emplear Top Down hace más fácil el mantenimiento, ya que al
presentar algún daño no se hace necesario cambiar todo el programa, por el
contrario la falla es fácilmente identificable, además de esto, solo es indispensable
cambiar el módulo defectuoso.

El desarrollo de productos en nuestro medio mediante la metodología de diseño


Top Down es un campo poco explorado. De manera similar al desarrollo de software
esta metodología es aplicada de la siguiente manera: se inicia por un nivel superior
y se va emigrando a los niveles inferiores, buscando establecer las funciones entre
las partes del producto para finalmente ultimar los detalles.
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

Modular
Programación modular es uno de los métodos de diseño más flexibles y potentes
para mejorar la productividad de un programa. En programación modular el
programa se divide en módulos (partes independientes), cada una de las cuales
ejecuta una única actividad o tarea y se codifican independientemente de otros
módulos. Cada uno de estos módulos se analiza, codifican por separado.
Cada programa contiene un módulo denominado programa principal, que controla
todo lo que sucede, se transfiere el control a submódulos (posteriormente se
denominan subprogramas), de modo que ellos puedan ejecutar sus funciones; sin
embargo, cada submódulo devuelve el control al módulo principal cuando termina
su tarea. Si la tarea asignada a cada submódulo es demasiado compleja, éste
deberá dividirse en otros módulos más pequeños. El proceso sucesivo de
subdivisión de módulos continúa hasta que cada módulo tenga solamente una tarea
específica que ejecutar.
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

Programación Estructurada
Es una forma de escribir programas de computadora de manera clara. Para ello
utiliza únicamente tres estructuras: secuencia, selección e iteración; siendo
innecesario el uso de la instrucción o instrucciones de transferencia incondicional
(GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las
necesidades de programación existentes en los años 1960, principalmente debido
a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no
son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la
programación orientada a objetos y el desarrollo de entornos de programación que
facilitan la programación de grandes aplicaciones.
Virney Hernández Villarreal
Algoritmo y lenguaje de Programación
A 21 de marzo del 2019

Referencias bibliográficas

http://es.slideshare.net/Adark/metodologa-para-el-diseo-de-software
http://moodle2.unid.edu.mx/dts_cursos_mdl/lic/IC/EA/AM/06/Metodologia_para_la_
solucion_de_problemas.pdf
https://algoritmos-
lenguajes.wikispaces.com/Unidad+2+Materiales?responseToken=5cac4605c0029
2f5ece5d9d0a88654ab

5 - Referencia Recomendada: Metodologías de Desarrollo del Software.


https://pid.dsic.upv.es/C1/Material/Documentos%20Disponibles/Introducci%C3%B
3n%20Proceso %20de%20Desarrollo%20de%20SW.doc
https://es.scribd.com/document/339063819/2-2-Metodologia-para-el-diseno-de-
software-Top-down-Bottom-up-modular-y-programacion-estructurada

S-ar putea să vă placă și