Download Metodología de la Programación Orientada a Objetos

Document related concepts
no text concepts found
Transcript


El termino OO, significa que el software es
organizado como una colección de objetos. Un
objeto es un paquete de software que contiene
datos y procedimientos relacionados.
Los objetos se utilizan para representar objetos
del mundo real, como pueden ser: productos,
clientes y ordenes de compra. La idea básica es
definir objetos de software que puedan
interactuar unos con otros como lo hacen en el
mundo real.


La OO es especialmente adecuada para
realizar determinadas aplicaciones,
sobre todo realización de prototipos
Las aplicaciones orientadas a objetos
son más sencillas de mantener


Los mecanismos de encapsulamiento de
POO soportan un alto grado de
reutilización de código, incrementándose
con la herencia y agregación.
Interfaces de usuario visuales


La POO es un modelo de lenguaje de
programación organizado alrededor de
en lugar de
y datos en
lugar de lógica.
Históricamente, un programa era visto como
un procedimiento lógico que tomaba
entradas, las procesaba, y producía salidas.
entradas
proceso
salida


El reto era el como escribir la lógica, no como
definir los datos.
La programación orientada a objetos se
enfoca en que lo que importa son los objetos
que queremos manipular, no la lógica que se
requiere para manipularlos.

La orientación a objetos
obliga a reconsiderar
nuestro pensamiento
sobre la computación, y
sobre cómo se
estructura la
información dentro de
la computadora.

Es una metodología de desarrollo de software
que se enfoca en el
de la POO
1. Nuestro mundo es un conjunto de
agentes/objetos colaborando uno con otros.
2. El software se debe organizar de acuerdo a la
estructura de mundo real.
 Esto incrementa el entendimiento y evolución del
software

Nuestro mundo es un conjunto de
agentes/objetos colaborando uno con
otros.
Ingenieros
Presidente
Fabricas
Científicos
Empleados
Escuelas

El software se debe organizar de
acuerdo a la estructura de mundo
real.
Objeto de Manejo
Objetos de
Diseño
Objeto
Administración
de fabricas
de Información
Objetos de
Laboratorio
Objeto
Empleados
◦ Elementos de comportamiento autónomo
Objeto = atributos + operaciones +
comportamientos
datos del objeto
para cambiar y/o hacer referencia a
los atributos
Al recibir estímulos (eventos)
realizan operaciones, cambian de estado y
activan eventos.


Como describimos el mundo real?
Concepto de clase + relación entre clases
Clase como conjunto de “objetos
similares” en el mundo

La
consiste en aislar un
elemento del resto de los elementos
que lo acompañan.



Las personas normalmente comprenden el
mundo construyendo modelos mentales de
partes del mismo; tratan de comprender
cosas con las que pueden interactuar.
Los modelos mentales abstraen
características de un objeto para nuestra
comprensión, mientras que ignoran
características irrelevantes.
Este proceso de abstracción es
psicológicamente necesario y natural.




La abstracción es crucial para comprender
este complejo mundo.
La abstracción es esencial para el
funcionamiento de una mente humana
normal.
La abstracción es una herramienta muy
potente para tratar la complejidad.
La abstracción es la clave para diseñar buen
software.

Los objetos van desde seres humanos
(descritos por el nombre, dirección, etc.) a
edificios, pisos (de los cuales se puede
describir sus atributos) hasta pequeños
componentes del escritorio de una
computadora (como botones y scroll bars).

Jerarquía de Clase, Herencia, “es un”
◦ Generalización / Especialización
◦ Mamífero :, Chango :, Humano

Composición, Agregación, “tiene un”

Asociación, relación general entre clases
◦ Automóvil = llantas + carrocería + motor
◦ Empleado – (trabaja en) – Empresa

Dependencia


Análisis / Diseño Orientado a Objetos
(ADOO)
Programación Orientada a Objetos
 Permite
una representación
más directa de un modelo del
mundo real en el código



Mejora la Productividad. La reutilización de
componentes existentes acelera el proceso de
desarrollo.
Las reducciones de código van desde un 40%
con respecto a la programación estructurada.
Entrega de sistemas de alta calidad. El sistema
se construye de componentes existentes
debidamente validados y probados.


Reducción del costo de mantenimiento. Los
cambios se enfocan únicamente en los
objetos afectados, sin necesidad de realizar
cambios en todo el sistema.
Administración de la complejidad. Con la
orientación a objetos, una solución compleja
se puede dividir en varios componentes de
menor complejidad que el todo.


Probablemente la parte difícil de la creación
de software orientado a objetos es:


Los lenguajes orientados a objetos proveen la
abstracción por medio de clases. Las clases
definen las propiedades y métodos de un tipo
de objeto.
Ejemplo: Puede crear una abstracción de un
perro con características como, color, altura y
peso, y acciones como ladrar y morder.
Las características representan las
propiedades y las acciones los métodos.
estudiante
persona
maestro
empleado
menu
ventana
botones
Caja de texto

Es un lenguaje de programación
orientado a objetos desarrollado por
Sun Microsystems a principios de los
años 90.



La sintaxis de Java se deriva en gran medida
de C /C++, Pero a diferencia de éste todo
en Java es un objeto.
Elimina herramientas de bajo nivel, que
suelen inducir a muchos errores, como la
manipulación directa de apuntadores o
memoria.
Permite Multihilos



Es independiente de la plataforma,
programas escritos en el lenguaje Java
pueden ejecutarse igualmente en cualquier
tipo de hardware.
La portabilidad es técnicamente difícil de
lograr, y el éxito de Java en ese campo ha
sido el simplificar su logro.
Distribuido bajo la licencia GNU GPL
(software Libre)

Programas que pueden ser
empotrados en una página Web

Programas autonomos llamados
aplicaciones Java

Programas que pueden ser
empotrados en una página Web
(Applets, Servlets)

Programas autonomos llamados
aplicaciones Java

Programas que pueden ser
empotrados en una página Web
(Applets, Servlets)

Programas autonomos llamados
aplicaciones Java
 Aplicaciones de consola

Programas que pueden ser
empotrados en una página Web
(Applets, Servlets)

Programas autonomos llamados
aplicaciones Java
 Aplicaciones de consola
 Aplicaciones con ventanas

Proceso de compilación en un Programa
C++

Proceso de compilación en un Programa
Java

Estructura de directorios en Java