Modularidad

11
MODULARIDAD EST RUCT URA DE D ATOS

description

Modularidad. Estructura de datos. Conceptos básicos: Diseño modular. Construcción de una cocina. Conceptos básicos: Estructura de los módulos. Necesita que. Dependencias. Qué hace. Cómo lo hace. ¿Qué hace?. Instalación eléctrica. Conceptos básicos. Encapsulación - PowerPoint PPT Presentation

Transcript of Modularidad

MODULARID

AD

ES

TR

UC

TU

RA

DE

DA

TO

S

CONCEPTOS BÁSICOS: DISEÑO MODULAR

Construcción de una cocina

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)

CONCEPTOS BÁSICOS: ACOPLAMIENTO

¿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

M1

M2

M5

M6

M3 M4

M7

M8

M9

+

-

abst

racc

ión

EJEMPLO

¿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