6. estructura de programas
Click here to load reader
-
Upload
hectormamani -
Category
Education
-
view
381 -
download
1
description
Transcript of 6. estructura de programas
![Page 1: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/1.jpg)
Estructura de Programas
Tecnología de ObjetosRaúl Herrera
![Page 2: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/2.jpg)
Requisitos para un programa modular Correspondencia directa. Conexión de un sistema de software
con los sistemas externos con que está relacionado. La estructura modular obtenida, debe seguir siendo compatible con cualquier otra estructura modular en el dominio del problema.
Pocas interfaces. Cada módulo debe comunicarse con el menor número de módulos posible.
Interfaces pequeñas (acoplamiento débil). Si dos módulos se comunican, deben intercambiar la menor información posible.
Interfaces explícitas. Siempre que dos módulos A y B se comuniquen, esto debe ser obvio a partir del texto de A, del de B o de ambos.
Ocultar información. Mostrar sólo lo necesario.
![Page 3: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/3.jpg)
Las Clases desde el punto de vista de la programación
Caja negra que oculta en su implementación: Atributos: variables que codifican el estado de
una instancia de la clase (objeto) Métodos: subprogramas que describen el
comportamiento de un objeto de la clase
Una clase es semejante a un tipo: Atributos: estructura de datos Métodos: operaciones sobre el tipo.
![Page 4: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/4.jpg)
Las clases son cajas negras con Interfaz (uso) Implementación (funcionamiento)
El implementador se encarga de definir el interfaz y de desarrollar la implementación
El usuario empleará los objetos de la clase exclusivamente a través del interfaz
![Page 5: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/5.jpg)
Definición de Clases en C++
![Page 6: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/6.jpg)
Programa en C++
![Page 7: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/7.jpg)
Definición de Clases en Java
![Page 8: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/8.jpg)
Programa en Java
![Page 9: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/9.jpg)
Objeto desde el punto de vista de la programación
Instancia de una clase: Cada objeto de una clase tiene su propia copia
de los atributos (estado propio) Todos los objetos de una clase comparten los
mismos métodos (comportamiento común)
![Page 10: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/10.jpg)
Ejemplo
![Page 11: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/11.jpg)
Definición
![Page 12: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/12.jpg)
Definición de métodos Hay 3 tipos de funciones: consultas, órdenes y
constructores. Las funciones se traducen en atributos y rutinas.
El objeto afectado no aparece como argumento del método:
trasladar(E Rdx,dy);
En realidad, el objeto afectado es un argumento de entrada/salida implícito llamado éste (this):
ALGORITMO: trasladar(ES Punto éste, E Rdx,dy);
![Page 13: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/13.jpg)
Implementación de la clase punto
![Page 14: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/14.jpg)
Implementación de la clase punto (2)
![Page 15: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/15.jpg)
Uso de Clases El usuario declara objetos como cualquier otra variable:
Punto p1, p2;
Como usuario, no se puede acceder a la parte privada de los objetos: p1.X = 2;ERROR
El usuario sólo puede manipular un Punto "a" invocando a los métodos de la interfaz de la clase Punto(comportamiento)
Principio de acceso uniforme: Los clientes no tienen por qué saber que se está accediendo a una rutina (sin parámetros) o a un atributo. Java y C++ no cumplen este principio.
![Page 16: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/16.jpg)
Invocación de Métodos Los métodos se invocan mediante paso de
mensajes:
El objeto P es el receptor del mensaje:
![Page 17: 6. estructura de programas](https://reader038.fdocuments.mx/reader038/viewer/2022100604/55980afc1a28ab2b2c8b4606/html5/thumbnails/17.jpg)
La estructura General de un POO Definición de Acceso a Bibliotecas
Definición de variables especiales (globales)
Definición de Clases Dentro de la Clase, definir:
Atributos Métodos
Definición de módulos de programa
Definición del flujo de control principal