Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Actividad 1 unidad 6

de MARIA CRISTINA GONZALEZ MEJIA - lunes, 1 de abril de 2013, 08:02

Es momento de discutir, comentar y aprender de forma colaborativa sobre


el diseo descendente o modular:

Qu hacen para dividir un problema en mdulos?

Cmo determinan los parmetros de entrada y retorno?

Siempre es posible hacer mdulos de un programa?

Cmo debe comentarse un mdulo?

Bienvenidas sus aportaciones


Responder

Re: Actividad 1 unidad 6


de ANDRES DIAZ HERNANDEZ - sbado, 6 de abril de 2013, 18:28

Andrs Daz Hernndez:


mi aportacin es la siguiente:

Es momento de discutir, comentar y aprender de forma colaborativa sobre el


diseo descendente o modular:
Qu hacen para dividir un problema en mdulos?
Para dividir un problema en mdulos de un programa idealmente debera cumplir
las siguientes caractersticas:
Tamao relativamente pequeo.- Esto facilita aislar el impacto que pueda tener la
realizacin de un cambio en el programa, bien para corregir un error, o bien por
rediseo del algoritmo (En la vida cotidiana, se emplean algoritmos frecuentemente
para resolver problemas. Algunos ejemplos son los manuales de usuario, que
muestran algoritmos para usar un aparato, o las instrucciones que recibe un
trabajador por parte de su patrn), correspondiente.
Independencia modular.- Cuanto ms independientes son los mdulos entre s
ms fcil y flexiblemente se trabajar con ellos, esto implica que para desarrollar

un mdulo no es necesario conocer detalles internos de otros mdulos. Como


consecuencia de la independencia modular un mdulo cumplir:
Caractersticas de caja negra, es decir abstraccin (La abstraccin consiste en
aislar un elemento de su contexto o del resto de los elementos que lo acompaan.
En programacin, el trmino se refiere al nfasis en el "qu hace?" ms que en el
"cmo lo hace?" (Caracterstica de caja negra). El comn denominador en la
evolucin de los lenguajes de programacin, desde los clsicos o imperativos
hasta los orientados a objetos, ha sido el nivel de abstraccin del que cada uno de
ellos hace uso.).
Aislamiento de los detalles mediante encapsulamiento (En Programacin
modular, y ms especficamente en programacin orientada a objetos, se
denomina encapsulamiento al ocultamiento del estado, es decir, de los datos
miembro, de un objeto de manera que slo se puede cambiar mediante las
operaciones definidas para ese objeto.
Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera
se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los
datos asociados a un objeto contra su modificacin por quien no tenga derecho a
acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementacin de los
mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se
evita que el usuario pueda cambiar su estado de maneras imprevistas e
incontroladas.
La independencia modular mejora el rendimiento humano, pudiendo realizarse
programacin en equipo y desarrollar mdulos paralelamente. Tambin contribuye
a la reutilizacin de software
Cmo determinan los parmetros de entrada y retorno?
La forma en que se define cada parmetro de un mtodo depende del tipo de
parmetro del que se trate. En C# se admiten cuatro tipos de parmetros:
parmetros de entrada, parmetros de salida, parmetros por referencia y
parmetros de nmero indefinido.
Parmetros de entrada
Un parmetro de entrada recibe una copia del valor que almacenara una variable
del tipo del objeto que se le pase. Por tanto, si el objeto es de un tipo valor se le
pasar una copia del objeto y cualquier modificacin que se haga al parmetro
dentro del cuerpo del mtodo no afectar al objeto original sino a su copia;
mientras que si el objeto es de un tipo referencia entonces se le pasar una copia
de la referencia al mismo y cualquier modificacin que se haga al parmetro dentro
del mtodo tambin afectar al objeto original ya que en realidad el parmetro
referencia a ese mismo objeto original.

Parmetros de salida
Un parmetro de salida se diferencia de uno de entrada en que todo cambio que
se le realice en el cdigo del mtodo al que pertenece afectar al objeto que se le
pase al llamar dicho mtodo tanto si ste es de un tipo por valor como si es de un
tipo referencia. Esto se debe a que lo que a estos parmetros se les pasa es
siempre una referencia al valor que almacenara una variable del tipo del objeto
que se les pase.
Cualquier parmetro de salida de un mtodo siempre ha de modificarse dentro del
cuerpo del mtodo y adems dicha modificacin ha de hacerse antes que cualquier
lectura de su valor. Si esto no se hiciese as el compilador lo detectara e informara
de ello con un error. Por esta razn es posible pasar parmetros de salida que
sean variables no inicializadas, pues se garantiza que en el mtodo se inicializarn
antes de leerlas. Adems, tras la llamada a un mtodo se considera que las
variables que se le pasaron como parmetros de salida ya estarn inicializadas,
pues dentro del mtodo seguro que se las inicializa.
Parmetros por referencia
Un parmetro por referencia es similar a un parmetro de salida slo que no es
obligatorio modificarlo dentro del mtodo al que pertenece, por lo que ser
obligatorio pasarle una variable inicializada ya que no se garantiza su inicializacin
en el mtodo.
Los parmetros por referencia se definen igual que los parmetros de salida pero
sustituyendo el modificador out por el modificador ref. Del mismo modo, al pasar
valores a parmetros por referencia tambin hay que precederlos del ref.
Parmetros de nmero indefinido
C# permite disear mtodos que puedan tomar cualquier nmero de parmetros.
Para ello hay que indicar como ltimo parmetro del mtodo un parmetro de
algn tipo de tabla unidimensional o dentada precedido de la palabra reservada
params.
Siempre es posible hacer mdulos de un programa?
La programacin modular es un paradigma de programacin que consiste en
dividir un programa en mdulos o subprogramas con el fin de hacerlo ms legible y
manejable.
Se presenta histricamente como una evolucin de la programacin estructurada
para solucionar problemas de programacin ms grandes y complejos de lo que
sta puede resolver.
Al aplicar la programacin modular, un problema complejo debe ser dividido en
varios subproblemas ms simples, y estos a su vez en otros subproblemas ms
simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente

simples como para poder ser resueltos fcilmente con algn lenguaje de
programacin. sta tcnica se llama refinamiento sucesivo, divide y vencers o
anlisis descendente (Top-Down).
Un mdulo es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de estos
mdulos tiene una tarea bien definida y algunos necesitan de otros para poder
operar. En caso de que un mdulo necesite de otro, puede comunicarse con ste
mediante una interfaz de comunicacin que tambin debe estar bien definida.
Si bien un mdulo puede entenderse como una parte de un programa en
cualquiera de sus formas y variados contextos, en la prctica se los suele tomar
como sinnimos de procedimientos y funciones. Pero no necesaria ni estrictamente
un mdulo es una funcin o un procedimiento, ya que el mismo puede contener
muchos de ellos, no debe confundirse el trmino "modulo" (en el sentido de
programacin modular) con trminos como "funcin" o "procedimiento", propios del
lenguaje que lo soporte.
Cmo debe comentarse un mdulo?

Que el objetiv de la programacin modular es extender las capacidades


predeterminadas de un lenguaje mediante porciones de cdigo empacadas en
diferentes mdulos, los cuales pueden ser fcilmente insertados en nuestros
programas. La primera forma de programacin modular fue la subrutina que era un
bloque de cdigo al cual se poda saltar (similar a la instruccin GOTO que hemos
mencionado antes)y una vez ejecutado el bloque, el programa devolva el control a
la instruccin siguiente a la que haba producido la llamada. Esta tcnica modular
se conoce con el nombre de procedimiento o funcin
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - domingo, 7 de abril de 2013, 10:55

Andrs:
Gracias por citar informacin sobre la modularidad que podemos consultar en
fuentes de internet.
Saludos
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6

de LUIS GERARDO SANCHEZ ACENJO CARRILLO - martes, 9 de abril de 2013, 03:37

A partir de la solucin modular del problema que planteaste en las unidades


anteriores, reflexiona sobre las ventajas del diseo descendente y las
funciones en Lenguaje C.

En mi caso particular, descubr la modularidad un poco antes de llegar a la


unidad 6. La razn es que mi proyecto se estaba extendiendo en longitud y
me estaba resultando muy dificil ordenar mis ideas. Al leer que se poda
fragmentar en modulos, me fue mucho ms fcil trabajar las distintas partes
del programa. As slo tena que pensar que parte hara cada modulo y lo
poda probar poco a poco.

Qu hacen para dividir un problema en mdulos?

Lo primero es pensar qu distintas "funciones" se requieren. Hay que pensar qu


tendra que hacer la funcion principal en general y esa es una primera forma de
dividir un tarea ms grande.

Cmo determinan los parmetros de entrada y retorno?

Bsicamente de la misma manera que lo hicimos con nuestro programa. Depende


de qu se necesite procesar para obtener un resultado que necesitamos de la
funcin.

Siempre es posible hacer mdulos de un programa?

En general s, pero siempre hay que evaluar que tenga sentido. Si es un programa
muy pequeo y sus elementos estn relacionados con una sla tarea, no tiene
sentido dividirlo. Si son muchas tareas no tan directamente relacionadas, lo tiene.

Cmo debe comentarse un mdulo?

Supongo, o al menos eso hice yo, con una nota de qu es lo que hace. En algunos
casos creo que puede ser til mencionar qu otra funcion lo llama para poder
seguir la ruta.
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - martes, 9 de abril de 2013, 11:02

Efectivamente Luis, hay que dar sentido a la modularidad y no particionar un


programa por hacerlo.

Saludos
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de BALDEMAR VALENZUELA KOBATA - mircoles, 10 de abril de 2013, 23:34

Qu hacen para dividir un problema en mdulos?

R= Descomponer el problema a resolver en pequeos problemas para que sea


ms fcil el poder realizar el programa.

Cmo determinan los parmetros de entrada y retorno?

R= Se realiza en principio un bosquejo de lo que se quiere realizar, posterior se


hace un esquema modular y checamos que es lo que va hacer cada modulo
Siempre es posible hacer mdulos de un programa?
R= Pienso que si es posible, entre ms complejo sea el problema, es mejor
separarlo en modulos.

Cmo debe comentarse un mdulo?

R= Es importante que, cuando se desarrolla un mdulo C se inserte en su


cabecera informacin sobre el nombre del archivo que lo contiene, la fecha, su
funcionalidad, el autor, etc.
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - jueves, 11 de abril de 2013, 08:31

Baldemar:
Plantear el problema y esbozar el algoritmo es una manera de determinar la
complejidad y la viabilidad de hacer modular un programa.
Saludos
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de NORMA PATRICIA CHAVEZ QUIONEZ - domingo, 14 de abril de 2013, 22:23

Buenas noches a todos

Qu hacen para dividir un problema en mdulos?

Al aplicar la programacin modular, un problema complejo debe ser


dividido en varios subproblemas ms simples, y estos a su vez en otros
subproblemas ms simples. Esto debe hacerse hasta obtener
subproblemas lo suficientemente simples como para poder ser resueltos
fcilmente con algn lenguaje de programacin. sta tcnica se llama
refinamiento sucesivo, divide y vencers anlisis descendente (TopDown).Para dividir esos mdulos se deben considerar las partes que
estn relacionadas para incluirlas dentro de un mismo mdulo y las que
sean distintas en mdulos diferentes. El diseo de cada mdulo debe
ser independiente de los otros. de manera que se relacionen entre s a
travs de entradas y salidas de datos. Es decir, se descompone el
problema en etapas de estructuracin jerrquicas, de forma que se
pueda considerar cada estructura desde dos puntos de vista: qu
hace? y cmo lo hace? .

Cmo determinan los parmetros de entrada y retorno?

Definiendo qu hace el mdulo y qu necesita especficamente.

Siempre es posible hacer mdulos de un programa?

Yo considero que si, pero creo que siempre cuidando que tengan coherencia
entre ellos.

Cmo debe comentarse un mdulo?

Me parece que debe de ser como se nos ha enseado en C, incluyendo


especificaciones y comentarios que sean de utilidad tanto al programador como
al usuario o a quien vea posteriormente dicho programa.

Saludos!
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - jueves, 18 de abril de 2013, 08:51

Norma:
Concuerdo contigo, usar el anlisis descendente permite ahorrar tiempo de
programacin y reciclar cdigo.
Saludos
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de JOSE ALDO LOVERA SANCHEZ - lunes, 15 de abril de 2013, 05:16

Qu hacen para dividir un problema en mdulos?

En principio un anlisis inicial determinar si es necesario o no, en muchos casos la


solucion al problema puede ser relativamente sencilla y adems requerir poco
cdigo, en cuyo caso la modularizacin pueda no ser una opcin viable aunque
posible. Ciertamente si un problema es complicado podemos aplicar el principio
expresado coloquialmente como "divide y venceras", que deber por un lado
resolver el problema y por otro brindar una estructura sencilla y clara de la solucin
del problema.

Cmo determinan los parmetros de entrada y retorno?

El planteamiento mismo del problema brinda los elementos para poder determinar
los insumos de entrada y de salida. El anlisis, planteamiento y solucin de un
problema se hace con premisas y se tiene claro lo que se espera. En este caso, el
adecuado anlisis del problema brindar los parmetros de entrada y salida.

Siempre es posible hacer mdulos de un programa?

En principio si es posible auunque no siempre es necesario. La desicion depende


de la complejidad del problema analizado. La misma funcion main dentro de C es
un mdulo.

Cmo debe comentarse un mdulo?

Considero que deben ser al menos los elementos revisados a lo largo de este
curso, por ejemplo el Autor, Fecha de creacion, ultima modificacin, autor de la
ultima modificacin, en su caso el numero de versin y quiz un pequeo esbozo
de lo que en esencia hace el programa as como de los parmetros de entrada y

salida.
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - jueves, 18 de abril de 2013, 08:52

Jos:
Concuerdo contigo, dividir o no un programa en mdulos depende de la
complejidad del mismo.
Saludos
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de OSCAR DE SALES YORDI - jueves, 18 de abril de 2013, 13:13

Qu hacen para dividir un problema en mdulos?

Lo principal es identificar qu clase de procesos ocurren internamente en el


programa, para poder definir claramente si hay la posibilidad de delimitar
funciones, una vez que hemos ubicado los lmites de cada proceso y que por lo
tanto podemos realizar sus funciones, entonces podemos hacer la divisin por
mdulos.
El objetivo final es que las operaciones en que se divida el programa sean tan
sencillas que prcticamente lo haga el procesador directamente. Debemos dividir
el programa en subproblemas, y los subproblemas en tareas aun ms sencillas
hasta que leguemos a un punto prcticamente indivisible.
Tcnicamente debemos identificar cuales son los datos que le vamos a entregar
para que los trabaje, y por lo tanto, cules son los datos de salida, y desde luego
el proceso que llevara a cabo.

Cmo determinan los parmetros de entrada y retorno?

Son las variables que debemos ingresarle para que las trabaje, y los de retorno
son el resultado de los procesos que internamente realiza la funcin, idealmente,
seria de el proceso.

Siempre es posible hacer mdulos de un programa?

Bueno, si nuestros objetivos son realizar problemas complejos que solucionen


problemas igualmente complejos, creo que ser obligatorio dividirlo en mdulos
y definir y disear claramente sus funciones y por lo tanto llevar a cabo la
divisin modular, sin embargo, para un problema muy sencillo quiz no sea
necesario.

Cmo debe comentarse un mdulo?

La principal diferencia es qu debe de comentarse internamente cules son


variables globales, y en el main o funcin principal debe indicarse cuales son
variables globales, y cuales son variables locales al main, por otro lado, tambin
debe comentarse en el main cuando se est invocando a una funcin o mdulo.
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - viernes, 19 de abril de 2013, 09:56

Oscar:
Concuerdo contigo en que es necesario comentar las variables locales y globales,
sobre todo si se les asigna el mismo nombre.
Saludos
Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MANUEL HERNAN ROVIRA CUEVAS - viernes, 19 de abril de 2013, 00:44

Qu hacen para dividir un problema en mdulos?

Primero categorizo las operaciones necesarias para resolver el problema y


despue strato de separarlo en partes de codigo y funciones que me permitan
ahorrar tecleo.

Cmo determinan los parmetros de entrada y retorno?

los de entrada los determino de acuerdo a los datos que ocupo para realizar

operaciones y los de salida los determino por los datos que se necesitan saber.

Siempre es posible hacer mdulos de un programa?

Si, debido que los algoritmos siempre pueden ser simplificados.

Cmo debe comentarse un mdulo?

Con la funcion que realiza dentro del programa.


Mostrar mensaje anterior | Responder

Re: Actividad 1 unidad 6


de MARIA CRISTINA GONZALEZ MEJIA - viernes, 19 de abril de 2013, 09:56

Manuel:
Efectivamente, los comentarios del programa deben tener la explicacin de lo que
hace cada parte del programa.
Saludos

También podría gustarte