SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Modularidad Si bien el acto de particionar un programa en componentes individuales reduce en algún grado la complejidad, una razón más poderosa para realizarlo es que ésto crea un número de contornos bien documentados dentro del programa. En algunos lenguajes, como por ejemplo Smalltalk, no existe el concepto de módulo, y la clase forma la unidad física de descomposición. En otros (Object Pascal, C++, Ada, CLOS), el módulo es una construcción separada. En estos lenguajes, las clases y los objetos forman la estructura lógica de un sistema; colocando estas abstracciones en módulos se produce la estructura física. La mayoría de los lenguajes que soportan al módulo como un concepto separado, también distinguen entre la interface y la implementación del módulo. C++ maneja los módulos directamente como files compilados en forma separada. La práctica tradicional en la comunidad C/C++ es colocar las interfaces de los módulos en files con extensión .h (header files). Las implementaciones de los módulos son colocados en archivos con extensión .c ,.cpp o .C. MODULARIDAD Módulo: Un módulo que se supone que representa una función lógica es una secuencia léxicamente continúa de instrucciones que se encuentra limitado por elementos de fronteras y además se caracteriza por disponer de un nombre o identificador Módulo: Es aquél que está constituido por una o varias instrucciones físicamente contiguas y lógicamente encadenadas, las cuales se pueden referenciar mediante un nombre y pueden ser llamadas desde diferentes puntos de un programa. Un módulo puede ser: Un programa  Una función  Una subrutina (o procedimiento) La modularidad se basa en la descomposición de un problema en una serie de sub problemas; dividiéndolo en módulos que resultan de segmentar el problema en funciones lógicas que son perfectamente diferenciadas. Esta división exige la presencia de un módulo denominado módulo de base o principal a objeto de que controle y se relacione con los demás. Es una técnica de programación que todavía se utiliza tanto para la construcción de algoritmos computacionales básicos así como apoyo al desarrollo de sistemas de gestión (en el diseño de diagramas modulares). La salida del módulo debe ser función de la entrada, pero no de ningún estado interno. En la creación de los módulos deben cumplirse tres aspectos básicos: descripción, rendimiento y diseño. En la descripción se definen las funciones y objetivos del programa. Para obtener el máximo rendimiento se ha de comprobar que el programa realice el proceso aprovechando al máximo todos los recursos de los que dispone. En cuanto al diseño, se debe comprobar la estructura que sigue el módulo, así como la estructura de los datos y la forma de comunicaciones entre los diversos y diferentes módulos. Conforme se extiende el tamaño de los algoritmos, se hace más difícil su revisión, actualización y/o corrección. Una política común para solventar este problema consiste en la modularización. Esto significa que el algoritmo se fragmenta en partes llamadas módulos. En realidad, es un método de diseño que tiende a dividir el problema, de forma lógica, en partes perfectamente diferenciadas que pueden ser analizadas, programadas y puestas a punto independiente. Objetivos: Descomponer el sistema en módulos:  - Los grupos deben maximizar el enlace y minimizar el acoplamiento. Determinar las relaciones entre módulos:  - Identificar y especificar las dependencias entre módulos. - Determinar la forma de comunicación entre módulos (variables llamadas a funciones, memoria compartida, paso de mensajes) Especificar las interfaces de los módulos:  - Facilita la prueba independiente entre los módulos. - Mejora la comunicación e integración del grupo Características: Permite reducir la complejidad global del sistema descentralizado; ejm. Divide y vencerás.  Mejora la escalabilidad y la productividad (los módulos pueden desarrollarse independientemente por varias personas) Principios para asegurar diseños modulares: Soporte de lenguaje para unidades modulares. Los módulos deben corresponder a unidades sintácticas del lenguaje utilizado. Pocas interfaces:  Cada módulo debe comunicarse con tan pocos como sea posible. Interfaces pequeñas (Acoplamiento débil):  Si dos módulos se comunican, deben intercambiar la menor información posible.. Interfaces explícitas:  Cuando dos módulos se comunican, debe estar claro en el texto de uno o de ambos. Ocultación de la información:  Toda la información sobre un módulo debe ser privada al módulo, a menos que se haya declarado específicamente como pública. Algunas ventajas de utilizar módulos son: Un programa modular es fácil de mantener y modificar.Un programa modular es más fácil de escribir y depurar (ejecutar, probar y poner a punto).Un programa modular es más fácil de controlar. El desglose de un problema en módulos permite encomendar los módulos más complejos a los programadores más experimentados y los más sencillos a los programadores nóveles.Posibilita el uso repetitivo de las rutinas en el mismo o en diferentes programas. Desventajas del uso de módulos: No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los módulos.La programación modular requiere más memoria y tiempo de ejecución. Segmento: El segmento a diferencia del módulo se caracteriza porque no dispone de un nombre o identificador METODOLOGÍA DESCENDENTE: (TOP – DOWN) Proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stipwise). La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración, de modo que se relacionen unas con otras mediante entradas y salidas de información. Es decir se descompone un problema en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura desde dos puntos de vista; ¿Qué hace?  Para ver el gráfico seleccione la opción 
Descargar
 del menú superior  ¿Cómo lo hace?  Para ver el gráfico seleccione la opción 
Descargar
 del menú superior  El diseño descendente se puede ver:  Para ver el gráfico seleccione la opción 
Descargar
 del menú superior  VARIABLES: Clasificación: Variable Local: Aquella que está declarada y definida dentro de un sub programa, en el sentido de que está dentro de ese sub programa y es distinta de las variables con el mismo nombre declaradas en cualquier parte del programa principal. El significado de una variable se confina al procedimiento en el que está declarada. Cuando otro sub programa utiliza el mismo nombre, se refiere a una posición diferente en memoria. El uso de variables locales tiene muchas ventajas. En particular, hace a los sub programas independientes con la comunicación entre el programa principal y los sub programas manipulados estructuralmente a través de la lista de parámetros. Una variable local a un sub programa, no tiene ningún significado en otros sub programas. Si un sub programa asigna un valor a una de sus variables locales, este valor no es accesible a otros programas, es decir, no pueden utilizar este valor. Variable Global: Aquella que está declarada para el programa o algoritmo principal del que dependen todos los sub programas Esta variable tiene la ventaja de compartir información de diferentes sub programas sin una correspondiente entrada en la lista de parámetros PROCEDIMIENTOS: Un procedimiento o sub rutina, es un sub programa que ejecuta un proceso específico. Ningún valor esta asociado con el nombre del procedimiento, por consiguiente no puede ocurrir en una expresión. Un procedimiento se llama escribiendo su nombre Ejm. SORT para indicar que un procedimiento denominado SORT se va a usar. Cuando se invoca el procedimiento los pasos que los define se ejecuta y a continuación se devuelve el control al programa que le llamó. PROCEDIMIENTO VS FUNCION Los procedimientos y funciones son sub programas, cuyo diseño y misión son similares, sin embargo existen unas diferencias esenciales entre ellos: Un procedimiento es llamado desde el algoritmo o programa principal, mediante su nombre y una lista de parámetros actuales o bien con la instrucción llamar_a (call). Al llamar al procedimiento se detiene momentáneamente el programa que se está realizando y el control pasa al procedimiento llamado, después de que las acciones del procedimiento se ejecutan, se regresa a la acción inmediata siguiente a la que se llamó.  Las funciones devuelven un valor, los procedimientos pueden devolver 0, 1 ó n valores y en forma de lista de parámetros.  El procedimiento se declara igual que la función, pero su nombre no está asociado a ninguno de los resultados que obtiene.  FUNCIONES: Las funciones son bloques de instrucciones que tienen por objeto el alcanzar un resultado que sustituirá a la función en el punto de invocación (las funciones devuelven un resultado).  Cada función se evoca utilizando su nombre en una expresión con los argumentos actuales o reales encerrados entre paréntesis.  Para hacer una referencia a una función se invoca mediante un nombre y en caso de existir, una lista de parámetros actuales necesarios (argumentos). Los argumentos deben coincidir en cantidad, tipo y orden con los de la función que fue definida. La función devuelve un valor único. Las funciones a que se hace referencia, se conocen como funciones de usuario puesto que son definidas por él mismo y permiten su uso en forma idéntica a las funciones estándares. Para coordinar e iniciar el procesamiento, se utiliza un módulo principal que es colocado al final del algoritmo. Una llamada a la función implica los siguientes pasos: A cada parámetro formal se le asigna el valor real de su correspondiente parámetro actual.  Se ejecuta el cuerpo de acciones de la función.  Se devuelve el valor de la función al nombre de la función y se retorna al punto de llamada.  ARQUITECTURA MODULAR: La arquitectura es el elemento estable ante los cambios en el ciclo de vida de los módulos; la clave está en separar interfaces de implementaciones. La separación entre interfaces e implementación: Aísla de los cambios.  Sirve de mecanismo (compilable) de unión entre arquitectura e implementación.  El papel de la arquitectura es proporcionar información de diseño a los desarrolladores, para que éstos puedan hacer cambios y correcciones a los módulos, sin romper la arquitectura.  En cada escala de un sistema modular, se puede definir una arquitectura y una implementación:  La implementación es la realización de los componentes modulares.  La arquitectura es la abstracción que define las interfaces entre componentes.
M O D U L A R I D A D
M O D U L A R I D A D
M O D U L A R I D A D
M O D U L A R I D A D
M O D U L A R I D A D

Weitere ähnliche Inhalte

Was ist angesagt?

Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
ALASBLANKS
 
Presentación1
Presentación1Presentación1
Presentación1
cipq
 
Procesos Interrupciones y Nucleo
 Procesos Interrupciones y Nucleo Procesos Interrupciones y Nucleo
Procesos Interrupciones y Nucleo
G Hoyos A
 
Español estructurado
Español estructuradoEspañol estructurado
Español estructurado
Jorge Garcia
 
Herramientas De Modelado
Herramientas De ModeladoHerramientas De Modelado
Herramientas De Modelado
msc080277
 

Was ist angesagt? (20)

Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
DISEÑO MEJORAMIENTO DE LOS SISTEMASDISEÑO MEJORAMIENTO DE LOS SISTEMAS
DISEÑO MEJORAMIENTO DE LOS SISTEMAS
 
Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.
 
Cuadro sinoptico
Cuadro sinopticoCuadro sinoptico
Cuadro sinoptico
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del software
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Modularidad
ModularidadModularidad
Modularidad
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 
Cuadro comparativo sgbd
Cuadro comparativo sgbdCuadro comparativo sgbd
Cuadro comparativo sgbd
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
Presentación1
Presentación1Presentación1
Presentación1
 
Procesos Interrupciones y Nucleo
 Procesos Interrupciones y Nucleo Procesos Interrupciones y Nucleo
Procesos Interrupciones y Nucleo
 
Español estructurado
Español estructuradoEspañol estructurado
Español estructurado
 
Herramientas De Modelado
Herramientas De ModeladoHerramientas De Modelado
Herramientas De Modelado
 
Modelos de software ventajas y desventajas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajas
 
Cuadro comparativo analisis estructurado y orientado a objeto
Cuadro comparativo analisis estructurado y orientado a objeto Cuadro comparativo analisis estructurado y orientado a objeto
Cuadro comparativo analisis estructurado y orientado a objeto
 
Enfoque estructurado enfoque oo
Enfoque estructurado   enfoque ooEnfoque estructurado   enfoque oo
Enfoque estructurado enfoque oo
 

Andere mochten auch

Arquitectura de redes
Arquitectura de redesArquitectura de redes
Arquitectura de redes
wsar85
 
Fuentes de energía no contaminantes
Fuentes de energía no contaminantesFuentes de energía no contaminantes
Fuentes de energía no contaminantes
Grecia Navarro
 
Etica para amador diapositiva
Etica para amador diapositivaEtica para amador diapositiva
Etica para amador diapositiva
Yadira Fuentes
 

Andere mochten auch (14)

Modularidad
ModularidadModularidad
Modularidad
 
4 separacion de funciones
4 separacion de funciones4 separacion de funciones
4 separacion de funciones
 
2013 0311 curso inap abril 2013 sesion 3 - los componentes técnicos de la a...
2013 0311 curso inap abril 2013   sesion 3 - los componentes técnicos de la a...2013 0311 curso inap abril 2013   sesion 3 - los componentes técnicos de la a...
2013 0311 curso inap abril 2013 sesion 3 - los componentes técnicos de la a...
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Arquitectura de redes
Arquitectura de redesArquitectura de redes
Arquitectura de redes
 
Fuentes de energía no contaminantes
Fuentes de energía no contaminantesFuentes de energía no contaminantes
Fuentes de energía no contaminantes
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
Etica para amador diapositiva
Etica para amador diapositivaEtica para amador diapositiva
Etica para amador diapositiva
 
ÉTICA PARA AMADOR- MAPA CONCEPTUAL
ÉTICA PARA AMADOR- MAPA CONCEPTUALÉTICA PARA AMADOR- MAPA CONCEPTUAL
ÉTICA PARA AMADOR- MAPA CONCEPTUAL
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Ética para Amador (resumen)
Ética para Amador (resumen)Ética para Amador (resumen)
Ética para Amador (resumen)
 

Ähnlich wie M O D U L A R I D A D

Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
azuajesimon
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
Drago Díaz
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
Marilugosale
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
negroues
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
negroues
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
EDWINERNESTOMADRIDME
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentes
AndresRealp1
 

Ähnlich wie M O D U L A R I D A D (20)

M o d_u_l_a_r_i_d_a_d
M o d_u_l_a_r_i_d_a_dM o d_u_l_a_r_i_d_a_d
M o d_u_l_a_r_i_d_a_d
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
 
Modulos de vista
Modulos de vistaModulos de vista
Modulos de vista
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentes
 
samir
samirsamir
samir
 
Samir
SamirSamir
Samir
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
 
Uml presentacion
Uml presentacionUml presentacion
Uml presentacion
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizan
 
Objeto de Aprendizaje : Introducción a UML
Objeto de Aprendizaje : Introducción a UMLObjeto de Aprendizaje : Introducción a UML
Objeto de Aprendizaje : Introducción a UML
 
Nixon torrealbav
Nixon torrealbavNixon torrealbav
Nixon torrealbav
 

Mehr von JORGE ARMANDO

B L O G V S F A C E B O O K
B L O G  V S  F A C E B O O KB L O G  V S  F A C E B O O K
B L O G V S F A C E B O O K
JORGE ARMANDO
 
CORTE I EvolucióN De Las Computadoras
CORTE I EvolucióN De Las ComputadorasCORTE I EvolucióN De Las Computadoras
CORTE I EvolucióN De Las Computadoras
JORGE ARMANDO
 
Tema I I TOPOLOGIA DE REDES
Tema  I I TOPOLOGIA DE REDESTema  I I TOPOLOGIA DE REDES
Tema I I TOPOLOGIA DE REDES
JORGE ARMANDO
 

Mehr von JORGE ARMANDO (17)

Wikileaks un reloj de arena de que tiempos
Wikileaks un reloj de arena de que tiemposWikileaks un reloj de arena de que tiempos
Wikileaks un reloj de arena de que tiempos
 
Elementos De Una Red Y Como Montar Una Red
Elementos De Una Red Y Como Montar Una RedElementos De Una Red Y Como Montar Una Red
Elementos De Una Red Y Como Montar Una Red
 
CóDigo De Colores Para Cables De Red Con Conectores
CóDigo De Colores Para Cables De Red Con ConectoresCóDigo De Colores Para Cables De Red Con Conectores
CóDigo De Colores Para Cables De Red Con Conectores
 
Taller Material Practico
Taller Material PracticoTaller Material Practico
Taller Material Practico
 
Por Qué Estudiar Transmision De Datos
Por Qué Estudiar Transmision De DatosPor Qué Estudiar Transmision De Datos
Por Qué Estudiar Transmision De Datos
 
1redes1
1redes11redes1
1redes1
 
Topologias De Una Red
Topologias De Una RedTopologias De Una Red
Topologias De Una Red
 
Red Neuronal Artificial
Red Neuronal ArtificialRed Neuronal Artificial
Red Neuronal Artificial
 
D.T.E D.C.E
D.T.E    D.C.ED.T.E    D.C.E
D.T.E D.C.E
 
End System
End SystemEnd System
End System
 
Que Es Una Red
Que Es Una RedQue Es Una Red
Que Es Una Red
 
Que Es Una Red 2
Que Es Una Red 2Que Es Una Red 2
Que Es Una Red 2
 
Plan Asignatura Redes I Gr Ao11
Plan Asignatura Redes I Gr Ao11Plan Asignatura Redes I Gr Ao11
Plan Asignatura Redes I Gr Ao11
 
B L O G V S F A C E B O O K
B L O G  V S  F A C E B O O KB L O G  V S  F A C E B O O K
B L O G V S F A C E B O O K
 
CORTE I EvolucióN De Las Computadoras
CORTE I EvolucióN De Las ComputadorasCORTE I EvolucióN De Las Computadoras
CORTE I EvolucióN De Las Computadoras
 
Tema I I TOPOLOGIA DE REDES
Tema  I I TOPOLOGIA DE REDESTema  I I TOPOLOGIA DE REDES
Tema I I TOPOLOGIA DE REDES
 
Tema I. Apuntes Docentes. REDES DE COMUNICACIÓN DE DATOS
Tema I. Apuntes Docentes. REDES DE COMUNICACIÓN DE DATOSTema I. Apuntes Docentes. REDES DE COMUNICACIÓN DE DATOS
Tema I. Apuntes Docentes. REDES DE COMUNICACIÓN DE DATOS
 

Kürzlich hochgeladen

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Kürzlich hochgeladen (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

M O D U L A R I D A D

  • 1. Modularidad Si bien el acto de particionar un programa en componentes individuales reduce en algún grado la complejidad, una razón más poderosa para realizarlo es que ésto crea un número de contornos bien documentados dentro del programa. En algunos lenguajes, como por ejemplo Smalltalk, no existe el concepto de módulo, y la clase forma la unidad física de descomposición. En otros (Object Pascal, C++, Ada, CLOS), el módulo es una construcción separada. En estos lenguajes, las clases y los objetos forman la estructura lógica de un sistema; colocando estas abstracciones en módulos se produce la estructura física. La mayoría de los lenguajes que soportan al módulo como un concepto separado, también distinguen entre la interface y la implementación del módulo. C++ maneja los módulos directamente como files compilados en forma separada. La práctica tradicional en la comunidad C/C++ es colocar las interfaces de los módulos en files con extensión .h (header files). Las implementaciones de los módulos son colocados en archivos con extensión .c ,.cpp o .C. MODULARIDAD Módulo: Un módulo que se supone que representa una función lógica es una secuencia léxicamente continúa de instrucciones que se encuentra limitado por elementos de fronteras y además se caracteriza por disponer de un nombre o identificador Módulo: Es aquél que está constituido por una o varias instrucciones físicamente contiguas y lógicamente encadenadas, las cuales se pueden referenciar mediante un nombre y pueden ser llamadas desde diferentes puntos de un programa. Un módulo puede ser: Un programa Una función Una subrutina (o procedimiento) La modularidad se basa en la descomposición de un problema en una serie de sub problemas; dividiéndolo en módulos que resultan de segmentar el problema en funciones lógicas que son perfectamente diferenciadas. Esta división exige la presencia de un módulo denominado módulo de base o principal a objeto de que controle y se relacione con los demás. Es una técnica de programación que todavía se utiliza tanto para la construcción de algoritmos computacionales básicos así como apoyo al desarrollo de sistemas de gestión (en el diseño de diagramas modulares). La salida del módulo debe ser función de la entrada, pero no de ningún estado interno. En la creación de los módulos deben cumplirse tres aspectos básicos: descripción, rendimiento y diseño. En la descripción se definen las funciones y objetivos del programa. Para obtener el máximo rendimiento se ha de comprobar que el programa realice el proceso aprovechando al máximo todos los recursos de los que dispone. En cuanto al diseño, se debe comprobar la estructura que sigue el módulo, así como la estructura de los datos y la forma de comunicaciones entre los diversos y diferentes módulos. Conforme se extiende el tamaño de los algoritmos, se hace más difícil su revisión, actualización y/o corrección. Una política común para solventar este problema consiste en la modularización. Esto significa que el algoritmo se fragmenta en partes llamadas módulos. En realidad, es un método de diseño que tiende a dividir el problema, de forma lógica, en partes perfectamente diferenciadas que pueden ser analizadas, programadas y puestas a punto independiente. Objetivos: Descomponer el sistema en módulos: - Los grupos deben maximizar el enlace y minimizar el acoplamiento. Determinar las relaciones entre módulos: - Identificar y especificar las dependencias entre módulos. - Determinar la forma de comunicación entre módulos (variables llamadas a funciones, memoria compartida, paso de mensajes) Especificar las interfaces de los módulos: - Facilita la prueba independiente entre los módulos. - Mejora la comunicación e integración del grupo Características: Permite reducir la complejidad global del sistema descentralizado; ejm. Divide y vencerás. Mejora la escalabilidad y la productividad (los módulos pueden desarrollarse independientemente por varias personas) Principios para asegurar diseños modulares: Soporte de lenguaje para unidades modulares. Los módulos deben corresponder a unidades sintácticas del lenguaje utilizado. Pocas interfaces: Cada módulo debe comunicarse con tan pocos como sea posible. Interfaces pequeñas (Acoplamiento débil): Si dos módulos se comunican, deben intercambiar la menor información posible.. Interfaces explícitas: Cuando dos módulos se comunican, debe estar claro en el texto de uno o de ambos. Ocultación de la información: Toda la información sobre un módulo debe ser privada al módulo, a menos que se haya declarado específicamente como pública. Algunas ventajas de utilizar módulos son: Un programa modular es fácil de mantener y modificar.Un programa modular es más fácil de escribir y depurar (ejecutar, probar y poner a punto).Un programa modular es más fácil de controlar. El desglose de un problema en módulos permite encomendar los módulos más complejos a los programadores más experimentados y los más sencillos a los programadores nóveles.Posibilita el uso repetitivo de las rutinas en el mismo o en diferentes programas. Desventajas del uso de módulos: No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los módulos.La programación modular requiere más memoria y tiempo de ejecución. Segmento: El segmento a diferencia del módulo se caracteriza porque no dispone de un nombre o identificador METODOLOGÍA DESCENDENTE: (TOP – DOWN) Proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stipwise). La metodología descendente consiste en efectuar una relación entre las sucesivas etapas de estructuración, de modo que se relacionen unas con otras mediante entradas y salidas de información. Es decir se descompone un problema en etapas o estructuras jerárquicas, de modo que se puede considerar cada estructura desde dos puntos de vista; ¿Qué hace?  Para ver el gráfico seleccione la opción Descargar del menú superior  ¿Cómo lo hace?  Para ver el gráfico seleccione la opción Descargar del menú superior  El diseño descendente se puede ver:  Para ver el gráfico seleccione la opción Descargar del menú superior  VARIABLES: Clasificación: Variable Local: Aquella que está declarada y definida dentro de un sub programa, en el sentido de que está dentro de ese sub programa y es distinta de las variables con el mismo nombre declaradas en cualquier parte del programa principal. El significado de una variable se confina al procedimiento en el que está declarada. Cuando otro sub programa utiliza el mismo nombre, se refiere a una posición diferente en memoria. El uso de variables locales tiene muchas ventajas. En particular, hace a los sub programas independientes con la comunicación entre el programa principal y los sub programas manipulados estructuralmente a través de la lista de parámetros. Una variable local a un sub programa, no tiene ningún significado en otros sub programas. Si un sub programa asigna un valor a una de sus variables locales, este valor no es accesible a otros programas, es decir, no pueden utilizar este valor. Variable Global: Aquella que está declarada para el programa o algoritmo principal del que dependen todos los sub programas Esta variable tiene la ventaja de compartir información de diferentes sub programas sin una correspondiente entrada en la lista de parámetros PROCEDIMIENTOS: Un procedimiento o sub rutina, es un sub programa que ejecuta un proceso específico. Ningún valor esta asociado con el nombre del procedimiento, por consiguiente no puede ocurrir en una expresión. Un procedimiento se llama escribiendo su nombre Ejm. SORT para indicar que un procedimiento denominado SORT se va a usar. Cuando se invoca el procedimiento los pasos que los define se ejecuta y a continuación se devuelve el control al programa que le llamó. PROCEDIMIENTO VS FUNCION Los procedimientos y funciones son sub programas, cuyo diseño y misión son similares, sin embargo existen unas diferencias esenciales entre ellos: Un procedimiento es llamado desde el algoritmo o programa principal, mediante su nombre y una lista de parámetros actuales o bien con la instrucción llamar_a (call). Al llamar al procedimiento se detiene momentáneamente el programa que se está realizando y el control pasa al procedimiento llamado, después de que las acciones del procedimiento se ejecutan, se regresa a la acción inmediata siguiente a la que se llamó. Las funciones devuelven un valor, los procedimientos pueden devolver 0, 1 ó n valores y en forma de lista de parámetros. El procedimiento se declara igual que la función, pero su nombre no está asociado a ninguno de los resultados que obtiene. FUNCIONES: Las funciones son bloques de instrucciones que tienen por objeto el alcanzar un resultado que sustituirá a la función en el punto de invocación (las funciones devuelven un resultado). Cada función se evoca utilizando su nombre en una expresión con los argumentos actuales o reales encerrados entre paréntesis. Para hacer una referencia a una función se invoca mediante un nombre y en caso de existir, una lista de parámetros actuales necesarios (argumentos). Los argumentos deben coincidir en cantidad, tipo y orden con los de la función que fue definida. La función devuelve un valor único. Las funciones a que se hace referencia, se conocen como funciones de usuario puesto que son definidas por él mismo y permiten su uso en forma idéntica a las funciones estándares. Para coordinar e iniciar el procesamiento, se utiliza un módulo principal que es colocado al final del algoritmo. Una llamada a la función implica los siguientes pasos: A cada parámetro formal se le asigna el valor real de su correspondiente parámetro actual. Se ejecuta el cuerpo de acciones de la función. Se devuelve el valor de la función al nombre de la función y se retorna al punto de llamada. ARQUITECTURA MODULAR: La arquitectura es el elemento estable ante los cambios en el ciclo de vida de los módulos; la clave está en separar interfaces de implementaciones. La separación entre interfaces e implementación: Aísla de los cambios. Sirve de mecanismo (compilable) de unión entre arquitectura e implementación. El papel de la arquitectura es proporcionar información de diseño a los desarrolladores, para que éstos puedan hacer cambios y correcciones a los módulos, sin romper la arquitectura. En cada escala de un sistema modular, se puede definir una arquitectura y una implementación: La implementación es la realización de los componentes modulares. La arquitectura es la abstracción que define las interfaces entre componentes.