Modularidad
-
Upload
cairo-woods -
Category
Documents
-
view
38 -
download
0
description
Transcript of Modularidad
CONCEPTOS BÁSICOS: ESTRUCTURA DE LOS MÓDULOS
Necesita que
Dependencias
¿Qué hace?Qué hace Cómo lo hace
Instalación eléctrica
CONCEPTOS BÁSICOS
Encapsulación Los módulos contienen:
Los datos que utilizan (herramientas) Las operaciones que tratan los datos
(servicios que ofrece)
Ocultación de la información Los datos locales de los módulos no deben
ser visibles desde el exterior (a nadie le importa qué herramientas utiliza)
Los módulos sólo pueden ser utilizados desde el exterior a través de las operaciones públicas (hay que solicitarle que haga las labores necesarias)
¿PORQUÉ MODULAMOS LAS APLICACIONES?
Descomponer el problema en partes más simples
Facilitar la comprensión del sistema y de cada una de sus partes
Si se produce un error en un módulo, éste sólo afecta a dicho módulo
Las modificaciones debidas a cambios en la especificación afectan a un número reducido de módulos
El sistema está compuesto de una serie de módulos independientes pero comunicados entre si
¿CÓMO SE DEBE MODULAR UNA APLICACIÓN?
El módulo debe dejar bien claro como hacer buen uso de él
El acceso a los servicios de un módulo debe ser homogéneo
Un módulo debe estar listo para su uso pero a su vez debe poder mejorarse
El lenguaje de programación utilizado debe soportar el uso de módulos
EJEMPLO EN JAVA: RECTÁNGULO
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 rectángulo 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 línea como string String linea = leer.readLine(); /*Convertirmos el string a un número. Podrías 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 número de líneas System.out.println(numCifras(x));}}
static int numCifras(int x){ while(x!=0){ x=x/10; total+=1; //incrementamos el contador } return total;}
EJERCICIO
1. Diseñar los módulos necesarios para los siguientes temas: Portal de internet de compra de tiempo aire. Agenda electrónica Control escolar de primaria Portal de internet de sitio turístico Cajero Automático
2. En un documento mostrar : Las especificaciones generales del sistema Las especificaciones de lo que realizará cada módulo realizará dentro
del sistema Las validaciones necesarias en cada módulo Diseño preliminar