Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Diseño Ascendente, Descendente, Modularizacion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

UNIVERSIDAD MARIANO GALVEZ

DE GUATEMALA



ESTUDIANTE: WILFRED GABRIEL DOMINGO MATUL
NO. CARN: 0903-14-19586
SEMENSTRE: SEGUNDO
SECCION: B

INGENIERA EN SISTEMAS DE INFORMACIN

CURSO: ALGORITMOS
DOCENTE: RUDY ALBERTO BRAVO

TEMA:
o Diseo ascendente
o Diseo descendente
o Modularizacin


Conoceris la verdad y la verdad os har libres








INTRODUCCION


El diseo ascendente consiste en realizar una abstraccin de un problema,
dividiendo el problema en partes pequeas y simples denominadas mdulos.

El diseo descendente es una tcnica que permite disear la solucin de un
problema con base en la modularizacin o segmentacin dndole un enfoque de
arriba hacia abajo.

Modularizacin consiste en que los programas pueden escribirse en mdulos, los
que permiten que un problema general pueda descomponerse en una serie de
subproblemas independientes









DISEO ASCENDENTE (Bottom-up )

Hace nfasis en la programacin y pruebas tempranas, que pueden comenzar tan
pronto se ha especificado el primer mdulo. Este enfoque tiene el riesgo de
programar cosas sin saber cmo se van a conectar al resto del sistema, y esta
conexin puede no ser tan fcil como se crey al comienzo. La reutilizacin del
cdigo es uno de los mayores beneficios del enfoque ascendente.
El desarrollo de software moderno usualmente combina tanto Top-down como
Bottom-up. Aunque un conocimiento completo del sistema se considera
usualmente necesario para un buen diseo, haciendo que tericamente sea un
enfoque top-down, la mayora de proyectos de desarrollo de software tratan de
usar cdigo existente en algn grado. El uso de mdulos existentes le dan al
diseo un sabor 'bottom-up'. Algunos enfoques usan un enfoque en el que un
sistema parcialmente funcional es diseado y programado completamente, y este
sistema se va expandiendo para llenar los requisitos del proyecto.
En el diseo Bottom-up las partes individuales se disean con detalle y luego se
enlazan para formar componentes ms grandes, que a su vez se enlazan hasta
que se forma el sistema completo. Las estrategias basadas en el flujo de
informacin "bottom-up" se antojan potencialmente necesarias y suficientes
porque se basan en el conocimiento de todas las variables que pueden afectar los
elementos del sistema.

El diseo ascendente se refiere a la identificacin de aquellos procesos que
necesitan computarizarse con forme vayan apareciendo, su anlisis como sistema
y su codificacin, o bien, la adquisicin de paquetes de software para satisfacer el
problema inmediato.

Cuando la programacin se realiza internamente y haciendo un enfoque
ascendente, es difcil llegar a integrar los subsistemas al grado tal de que el
desempeo global, sea fluido. Los problemas de integracin entre los subsistemas
son sumamente costosos y muchos de ellos no se solucionan hasta que la
programacin alcanza la fecha lmite para la integracin total del sistema. En esta
fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los
usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se
ignoran. Aunque cada subsistema parece ofrecer lo que se requiere, cuando se
contempla al sistema como una entidad global, adolece de ciertas limitaciones por
haber tomado un enfoque ascendente.

Uno de ellos es, la duplicacin de esfuerzos para acceder el software y ms an al
introducir los datos.
Otro es, que se introducen al sistema muchos datos carentes de valor.
Un tercero y tal vez el ms serio inconveniente del enfoque ascendente, es que los
objetivos globales de la organizacin no fueron considerados y en consecuencia
no se satisfacen.

DISEO DESCENDENTE (Top-Down )

La metodologa descendente, tambin conocida como arriba-abajo consiste en
establecer una serie de niveles de menor o mayor complejidad (arriba-abajo) que
den solucin al problema. Consiste en efectuar una relacin entre las etapas de la
estructuracin de forma que una etapa jerrquica y su inmediatamente inferior se
relacionen mediante entradas y salidas de informacin.
Un proceso descendente est basado en dos caractersticas esenciales:
o Representacin en forma de rbol, y
o Descomposicin funcional
El diseo se basa en la realizacin de diferentes niveles. El primer nivel resuelve
totalmente el problema y el segundo y sucesivos niveles son refinamientos
sucesivos del primero (stepwise) y se sigue siempre la metodologa de recursos
abstractos.
Si el diseo y planteamiento es correcto nunca ser preciso volver atrs ya que los
niveles anteriores al que se est situando en un momento dado ya habrn resuelto
el problema en su totalidad.

La programacin descendente o "Top - Down" es el proceso mediante el cual un
problema se descompone en una serie de niveles o pasos sucesivos de
refinamiento (stepwise).

La metodologa descendente consiste en efectuar una relacin entre las
sucesivas etapas de estructuracin de modo que exista una relacin entre ellas
mediante entradas y salidas de informacin. El problema se descompone en
varias estructuras jerrquicas, de forma que se pueda considerar cada estructura
desde dos puntos de vista: qu hace? y cmo lo hace?
Las estructuras desde los dos puntos de vista se representan de la siguiente
forma:


El diseo descendente se representa as:



En el modelo Top-down se formula un resumen del sistema, sin especificar
detalles. Cada parte del sistema se refina diseando con mayor detalle. Cada
parte nueva es entonces redefinida, cada vez con mayor detalle, hasta que la
especificacin completa es lo suficientemente detallada para validar el modelo. El
modelo descendente se disea con frecuencia con la ayuda de "cajas negras" que
hacen ms fcil cumplir requerimientos aunque estas cajas negras no expliquen
en detalle los componentes individuales.




Modularizacin

Los programas pueden escribirse en mdulos, los que permiten que un problema
general pueda descomponerse en una serie de subproblemas independientes
(Divide y vencers). Se puede repartir la tarea entre varias personas, y
concentrarse en la resolucin de cada subproblema.





Cuando una tarea debe realizarse ms de una vez en un mismo programa, la
modularizacin evita la programacin redundante, ya que una vez definida la tarea
como un mdulo independiente, puede ser invocada desde cualquier parte del
cdigo; se aprecia tambin una menor longitud del programa.
Otra ventaja de importancia es la claridad que resulta de la descomposicin de un
programa en mdulos concisos e independientes, representando cada uno de
estos una parte bien definida del problema en su conjunto, permitiendo escribir y
depurar el cdigo ms fcil. Su estructura lgica es ms clara, lo cual es
sumamente til si el programa es largo y complicado.
Esto significa descomponer la programacin en fracciones lgicas y manejables.
Este tipo de programacin se apega bien al diseo descendente porque enfatiza
las interfaces entre los mdulos, mis qu mantenerlas ignoradas hasta el final del
desarrollo del sistema. De manera ideal, cada mdulo debe ser funcionalmente
cohesivo, de tal manera que satisfaga slo una funcin.
El diseo de programas modulares, tiene ventajas bsicas:
Manejabilidad:
Una de las ventajas del uso de esta estrategia es que descompone todo en
sectores ms manejables. Al crear un programa de software grande, puede ser
muy difcil concentrarse en una sola pieza de codificacin. Sin embargo, si se
descomponen en tareas individuales, el trabajo no parece casi tan abrumador.
Esto ayuda a los desarrolladores mantenerse en la tarea y evitar sentirse
abrumados por la idea de que hay mucho que ver con un proyecto en particular.
Programacin en equipo:
Otra ventaja de esta estrategia es que permite la programacin del equipo. En vez
de dar un gran trabajo para un programador individual, puedes dividirlo en un gran
equipo de programadores. Cada programador puede recibir una tarea en
especfico para completar como parte del programa general. Despus, al final,
todo el trabajo de varios de los programadores es compilado para crear el
programa. Esto ayuda a acelerar el trabajo y permite la especializacin.
Calidad:
La modularizacin tambin puede mejorar la calidad de un fragmento de cdigo.
Cuando todo se descompone en piezas pequeas y hace que cada persona sea
responsable de una determinada seccin, lo cual puede mejorar la calidad de cada
seccin individual. Cuando un programador no tiene que preocuparse de todo el
programa, l puede asegurarse que su pieza individual del cdigo es impecable.
Entonces, cuando todas las piezas se combinan, menos errores suelen
encontrarse en general.
Reutilizacin de los mdulos:
La modularizacin permite reutilizar partes de programas que ya funcionan. Al
dividir todo en mdulos, descompones todo hasta las partes bsicas. Si ya tienes
un fragmento de cdigo que funciona bien para una determinada funcin, no
tienes que reinventar la rueda. Simplemente utilizar el mismo cdigo de nuevo y
dejar que el programa se base en l. Esto puede hacerse varias veces a travs del
programa si se necesitan las mismas caractersticas una y otra vez. Esto ahorra
esfuerzo y tiempo de programadores.







CONCLUSIONES Y RECOMENDACIONES

Diseo descendente nos permite:
La simplificacin del problema y de los subprogramas de cada
descomposicin.

Las diferentes partes del problema pueden ser programas de modo
independiente.

Usar procedimientos construidos por otros programadores.

Encontrar errores en el cdigo, sobre todo en programas largos.

Diseo ascendente nos permite:
Enumerar primero los mdulos inferiores hasta llegar al mdulo superior.

Hay que tomar en cuenta que la modularizacion nos ser til cuando:
exista un grupo de instrucciones o una tarea especfica que deba ejecutarse
en ms de una ocasin.

un problema es complejo o extenso, la solucin se divide o segmenta en
mdulos que ejecutan partes o tareas especficas.









BIBLIOGRAFIA


Diseo ascendente
http://es.wikipedia.org/wiki/Top-down_y_bottom-up
http://www.buenastareas.com/ensayos/La-Ingenieria-De-Software/188215.html
http://html.rincondelvago.com/programacion_diseno-de-sistemas.html

Diseo descendente
http://www.buenastareas.com/ensayos/La-Ingenieria-De-Software/188215.html
http://vicveryne.blogspot.com/2008/06/diseo-top-down.html
http://www.mailxmail.com/curso-introduccion-lenguaje-pascal/programacion-
descendente-top-down
http://html.rincondelvago.com/programacion_diseno-de-sistemas.html

Modularizacin
http://www.fing.edu.uy/inco/cursos/fpr/wiki/index.php/Modularizaci%C3%B3n
http://www.ehowenespanol.com/ventajas-modularizacion-info_270950/

También podría gustarte