You are on page 1of 11

Modularidad

Estructura de datos
Conceptos bsicos: Diseo modular
Construccin de una
cocina
Conceptos bsicos:
Estructura de los mdulos
Necesita que
Dependencias
Qu hace?
Qu hace Cmo lo hace
Instalacin elctrica
Conceptos bsicos
Encapsulacin
Los mdulos contienen:
Los datos que utilizan (herramientas)
Las operaciones que tratan los datos
(servicios que ofrece)

Ocultacin de la informacin
Los datos locales de los mdulos no deben ser
visibles desde el exterior (a nadie le importa qu
herramientas utiliza)
Los mdulos slo pueden ser utilizados desde el
exterior a travs de las operaciones pblicas (hay
que solicitarle que haga las labores necesarias)
Conceptos bsicos: acoplamiento
Porqu modulamos las aplicaciones?
Descomponer el
problema en partes
ms simples
Facilitar la
comprensin del
sistema y de cada
una de sus partes
Si se produce un
error en un mdulo,
ste slo afecta a
dicho mdulo
Las modificaciones
debidas a cambios
en la especificacin
afectan a un nmero
reducido de
mdulos
El sistema est
compuesto de una
serie de mdulos
independientes
pero comunicados
entre si
M1
M2
M5
M6
M3 M4
M7
M8
M9
+
-
a
b
s
t
r
a
c
c
i

n

EJEMPLO
Ventajas y desventajas
Cmo se debe
modular una aplicacin?
El mdulo debe dejar bien claro como hacer buen uso de l
El acceso a los servicios de un mdulo debe ser homogneo
Un mdulo debe estar listo para su uso pero a su vez debe poder
mejorarse
El lenguaje de programacin utilizado debe soportar el uso de
mdulos

Ejemplo en java:
rectngulo
import java.io.*;
public class Rectangulo {

static int base;
static int altura;
static int area;
static int opcion=0;
static String linea, linea1, linea2;
static char letra;



public static void main(String[] args) throws IOException {
BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
while (opcion==0)
{System.out.println("Introduce la base:");
linea = leer.readLine();
base = Integer.parseInt(linea);
System.out.println("Introde la altura:");
linea1 = leer.readLine();
altura = Integer.parseInt(linea1);
if (base<=0 || altura<=0)
{ System.out.println("Los valores introducidos son incorrectos deseas volver a introducirlos?(S/N): ");
linea2= leer.readLine();
letra=linea2.charAt(0);
if(letra =='s')
{ opcion=0;
System.out.println(opcion);
}
else
{ opcion=1; }
}
else
{ System.out.println("El rea del rectngulo es:");
System.out.println(area_rectangulo(base, altura));
opcion=0;
}
};
}
}



static int area_rectangulo (int base, int altura)
{
area= base * altura;
return area;
}
Ejemplo en java: cifras
import java.io.*;

public class Cifras {

static int total=0;
static int x=0;

static int numCifras(int x){
while(x!=0){
x=x/10;
total+=1; //incrementamos el contador
}
return total;
}

public static void main(String[]args) throws IOException{
//BufferedReader para leer de consola
BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Introduce un numero:");
//leemos una lnea como string
String linea = leer.readLine();
/*Convertirmos el string a un nmero. Podras poner
*un try y catch para comprobrar errores al convertirlo.Por
*ejemplo si introducen un string*/
x= Integer.parseInt(linea);
System.out.println("El numero de cifras es:");
//Imprimimos el nmero de lneas
System.out.println(numCifras(x));
}
}

static int numCifras(int x){
while(x!=0){
x=x/10;
total+=1; //incrementamos el contador
}
return total;
}

You might also like