Estructura de Programas Tecnología de Objetos Raúl Herrera
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.
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.
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
Definición de Clases en C++
Programa en C++
Definición de Clases en Java
Programa en Java
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)
Ejemplo
Definición
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);
Implementación de la clase punto
Implementación de la clase punto (2)
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.
Invocación de Métodos Los métodos se invocan mediante paso de mensajes: El objeto P es el receptor del mensaje:
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

6. estructura de programas

  • 1.
    Estructura de ProgramasTecnología de Objetos Raúl Herrera
  • 2.
    Requisitos para unprograma 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.
  • 3.
    Las Clases desdeel 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.
  • 4.
    Las clases soncajas 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
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Objeto desde elpunto 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)
  • 10.
  • 11.
  • 12.
    Definición de métodosHay 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);
  • 13.
  • 14.
    Implementación de laclase punto (2)
  • 15.
    Uso de ClasesEl 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.
  • 16.
    Invocación de MétodosLos métodos se invocan mediante paso de mensajes: El objeto P es el receptor del mensaje:
  • 17.
    La estructura Generalde 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