Vous êtes sur la page 1sur 57

TECNOLGICO NACIONAL DE MXICO

Instituto Tecnolgico Superior de Guasave

PROGRAMACIN ORIENTADA A OBJETOS

Mtro. Jos Antonio Sandoval Acosta

PROGRAMACIN ORIENTADA A OBJETOS

PROGRAMACIN ORIENTADA A OBJETOS


Competencias Previas de la Asignatura
Analizar, disear y desarrollar soluciones de problemas
reales utilizando algoritmos computacionales para
implementarlos en un lenguaje de programacin
orientado a objetos.

PROGRAMACIN ORIENTADA A OBJETOS


Competencias Especficas de la Asignatura:

Disear e implementar objetos de programacin


que permitan resolver situaciones reales y de
ingeniera.

PROGRAMACIN ORIENTADA A OBJETOS


Caracterizacin de la asignatura.
6 Unidades de Aprendizaje
5 horas por semana
Esta asignatura aporta al perfil del Ingeniero en Sistemas
Computacionales la capacidad de analizar, desarrollar, implementar y
administrar software de aplicacin orientado a objetos, cumpliendo con
estndares de calidad, con el fin de apoyar la productividad y
competitividad de las organizaciones.
Esta materia proporciona soporte a otras, ms directamente vinculadas
con desempeos profesionales; Proporciona al estudiante las
competencias necesarias para abordar el estudio de cualquier lenguaje
orientado a objetos, metodologa de anlisis y diseo orientado a
objetos, de los sistemas gestores de bases de datos, y en general de
cualquier materia basada en el modelo orientado a objetos.

PROGRAMACIN ORIENTADA A OBJETOS


Temario de la Asignatura

PROGRAMACIN ORIENTADA A OBJETOS


Temario de la Asignatura

PROGRAMACIN
ORIENTADA
A OBJETOS
FUNDAMENTOS DE
BASE DE DATOS
Temario de la Asignatura

PROGRAMACIN
ORIENTADA
A OBJETOS
FUNDAMENTOS DE
BASE DE DATOS
Temario de la Asignatura

PROGRAMACIN ORIENTADA A OBJETOS


Temario de la Asignatura

PROGRAMACIN ORIENTADA A OBJETOS


Temario de la Asignatura

PROGRAMACIN ORIENTADA A OBJETOS


Forma de Evaluacin de la
Asignatura
Examen por unidad
20%
Tareas y entregables
40%
Proyecto final (obligatorio)20%
Exposicin por equipos
20%
100%

Total

PROGRAMACIN ORIENTADA A OBJETOS


Temario de la Asignatura

Competencia Especfica
Comprender, describir y modelar los conceptos
principales del paradigma de programacin orientado a
objetos y aplicarlos a situaciones de la vida real.

UNIDAD I

PROGRAMACIN ORIENTADA A OBJETOS


Qu es un objeto?
Un objeto es una entidad fsica o abstracta que tiene
un comportamiento antes ciertos estmulos, tanto
externos como de otros objetos especficos que se
encuentran dentro del sistema.

PROGRAMACIN ORIENTADA A OBJETOS


Qu se puede considerar como objeto?
- Persona
- Equipo Hardware
- Materiales
- Informacin
- Software
- Procesos
- Procedimientos

PROGRAMACIN ORIENTADA A OBJETOS


Objeto Fsico: Horno
Operaciones asociadas:
Encendido
Apagado
Cargado
Descargado.

PROGRAMACIN ORIENTADA A OBJETOS


Objeto Abstracto: Cola
Operaciones asociadas:
Agregar elemento
Eliminar elemento
Verificar si est vaca
Verificar si est llena
Primer elemento de la cola
Siguiente elemento de la cola

PROGRAMACIN ORIENTADA A OBJETOS


Identidad de un objeto
Cada objeto tiene su propia identidad que lo distingue de los
dems objetos. En otras palabras, dos objetos distintos no
son iguales aunque todos los valores de sus atributos sean
idnticos.

PROGRAMACIN ORIENTADA A OBJETOS


Laprogramacin orientada a objetosoPOO(OOPsegn
sus siglas en ingls) es unparadigma de programacinque
usaobjetosy sus interacciones, para disear aplicaciones
y programasinformticos.
Est basado en varias tcnicas incluyendo:
Herencia
Abstraccin
Polimorfismo y
Encapsulamiento

PROGRAMACIN ORIENTADA A OBJETOS


Clases y Objetos
Una clase es bsicamente un plano para un tipo de datos
personalizado. Cuando se define una clase, se utiliza
cargndola en la memoria.
Una clase que se ha cargado en la memoria se denomina
objeto o instancia.

PROGRAMACIN ORIENTADA A OBJETOS


Las caractersticas
objetos son:

principales

de los

Encapsulacin: combinacin en una


sola
estructura
los
datos,
procedimientos y funciones que los
manipulan para formar un nuevo tipo el objeto.
Permite que la informacin de un objeto
permanezca oculta para el mundo
exterior.

PROGRAMACIN ORIENTADA A OBJETOS


Herencia: Definicin de un objeto y luego uso del mismo para
construir una jerarqua de objetos descendientes, con cada
descendiente heredando acceso a todo el cdigo y datos del ancestro.

PROGRAMACIN ORIENTADA A OBJETOS


Polimorfismo: Dada una accin un nombre que es compartido hacia
arriba y abajo en una jerarqua de objetos, con cada objeto en la
jerarqua implementando la accin de una manera apropiada a s mismo.

PROGRAMACIN ORIENTADA A OBJETOS


Abstraccin: Es la encargada
desde el punto de vista de la
programacin orientada a objetos
expresa
las
caractersticas
esenciales de un objeto, las
cuales distinguen al objeto de los
dems. Adems de distinguir
entre los objetos provee lmites
conceptuales.
Entonces se puede decir que la
encapsulacin
separa
las
caractersticas esenciales de las
no esenciales dentro de un objeto.

PROGRAMACIN ORIENTADA A OBJETOS

Clase polgono
Objetos polgonos
Aplicando
abstraccin

Atributos
Vrtices
Color del borde
Color de relleno
Operaciones
Dibujar
Borrar
Mover

PROGRAMACIN ORIENTADA A OBJETOS


Tarea 1:
Dibuje una jerarqua de vehculos para pasajeros (bicicleta,
motocicleta, automvil, etc.)
Comience con el diseo de un mapa conceptual de la
Programacin Orientada a Objetos.

PROGRAMACIN ORIENTADA A OBJETOS


LOS MIEMBROS DE UNA CLASE SON:
Mtodos: Acciones que puede realizar
Propiedades: Caractersticas que se pueden leer y, a
veces, modificar
Eventos: Notificaciones (eventos) que produce cuando se
realiza una accin concreta
Atributos: Variables internas y constantes

PROGRAMACIN ORIENTADA A OBJETOS

Modelado de Clases y Objetos con


UML

PROGRAMACIN ORIENTADA A OBJETOS


El lenguaje UML (en ingls, Unified Modeling Language)
es un lenguaje para la:
Especificacin,
Visualizacin,
Construccin, y
Documentacin de las partes de un sistema de
software.
Consiste en una coleccin de las mejores prcticas de
ingeniera que mostraron ser exitosas en el modelado de
sistemas complejos.

PROGRAMACIN ORIENTADA A OBJETOS


Fu creado en 1996, por el Object Mangement Group (
www.omg.org) con sucesivas modificaciones y agregados
para permitir mayor funcionalidad, gracias al aporte y la
participacin de empresas como IBM, Hewlett Packard,
Microsoft, Unisys y Oracle, entre otras.
Es un lenguaje predominantemente visual, que consiste de
varios diagramas, cada uno modelando un parte esencial
del sistema a construir.

PROGRAMACIN ORIENTADA A OBJETOS


DIAGRAMA DE CLASES
Las clases son dibujadas con un rectngulo, dividido en tres
partes:

El nombre de la clase,
Los atributos, y
Las operaciones correspondientes.

Puede agregarse tambin una divisin en donde


especifican las responsabilidades de esa clase.

se

PROGRAMACIN ORIENTADA A OBJETOS


Representacin de una clase

PROGRAMACIN ORIENTADA A OBJETOS


El nombre de la clase debe ser lo menos ambiguo posible,
usualmente un sustantivo.
Atributos: Los atributos describen las caractersticas de
los objetos.
Poseen un tipo, que nos indica qu clase de atributo es. Si
bien existen ciertos tipos primitivos, como enteros,
booleanos y reales, cualquier tipo puede ser usado,
incluso otras clases.

PROGRAMACIN ORIENTADA A OBJETOS


La restriccin ms importante es que los atributos son
visibles nicamente por la clase que los contiene.
La sintaxis de declaracin es la siguiente:

<nombre>:<tipo> < = valor_inicial >


El dato valor_inicial es opcional y permite inicializar los
atributos directamente en la declaracin.

PROGRAMACIN ORIENTADA A OBJETOS


Las operaciones son utilizadas
atributos o realizar consultas.

para

manipular

los

La sintaxis para describir una operacin es la siguiente:

<nombre_operacin>(<parmetros>):<tipo_resulta
do>

PROGRAMACIN ORIENTADA A OBJETOS


A diferencia de los atributos, las operaciones pueden tener
diferente visibilidad hacia otras clases, la cual se denota
entre llaves a la izquierda de la declaracin.
Todas las operaciones estn agrupadas de acuerdo a los
estereotipos

<<comando>>,
<<consulta>> o
<<constructor>> de acuerdo a su funcin en la
clase.

PROGRAMACIN ORIENTADA A OBJETOS


Las responsabilidades son las obligaciones de una
clase y son definidas por el usuario.
Si bien, existe un compartimiento dentro de la clase
para la especificacin de las responsabilidades, stas
son de carcter opcional.

PROGRAMACIN ORIENTADA A OBJETOS


Dependiendo del nivel de detalle que queremos alcanzar en
el modelo, se pueden obviar algunas de las divisiones del
grfico de clases.
Esto permite simplificar el diagrama completo, de acuerdo
al nivel de abstraccin necesario. Puede utilizarse, por
ejemplo

PROGRAMACIN ORIENTADA A OBJETOS


Notas:
A los grficos de clases se les puede agregar notas o
comentarios sobre algn aspecto interesante de la clase.
Estas notas pueden incluir observaciones sobre la clase,
alguna restriccin de uso, e incluso el pseudo-cdigo
de algunas operaciones.
Se grafican por medio de un rectngulo con la esquina
superior derecha plegada, como si fuera una hoja, y se une
con una lnea al elemento de la clase al cual corresponde la
nota.

PROGRAMACIN ORIENTADA A OBJETOS


Representacin de las Notas

PROGRAMACIN ORIENTADA A OBJETOS


Las relaciones ms importantes entre clases que
utilizaremos son

Asociaciones,
Agregaciones, y
Generalizacin.

PROGRAMACIN ORIENTADA A OBJETOS


Asociacin
Una asociacin es una conexin entre clases. Significa que
los objetos de dos clases tendrn un vnculo bidireccional
en comn, el cual puede interpretarse como para cada X
existe un Y.
Se representa por medio de una lnea continua entre dos
clases.

PROGRAMACIN ORIENTADA A OBJETOS


Multiplicidad
Se utiliza multiplicidad cuando no necesariamente los
vnculos entre objetos son de uno a uno.
Se especifica en cada extremo del vnculo, a travs de un
rango, cuntos objetos pueden estar vinculados.

PROGRAMACIN ORIENTADA A OBJETOS


El diagrama anterior indica que cada programador tendr
varias computadoras (posiblemente ninguna), y que cada
computadora ser usada por al menos un programador.

PROGRAMACIN ORIENTADA A OBJETOS


Rangos
Algunos ejemplos de rangos son los siguientes:

Cuando no se especifica ningn rango, se asume el valor uno


(1) por defecto. Puede agregarse una flecha a la lnea,
indicando la direccin del vnculo:

PROGRAMACIN ORIENTADA A OBJETOS


Agregaciones
Agregacin es un caso especial de asociacin. Indica que una
o ms clases (clases componentes) forman parte de otra clase
(clase agregada).
Se denota con un rombo en uno de los extremos del vnculo,
aqul que corresponde a la clase agregada.
Puede interpretarse como posee (o contiene) un.

PROGRAMACIN ORIENTADA A OBJETOS


En la agregacin, la multiplicidad de la clase agregada
debe ser cero o uno (0..1), pero en las clases que conforman
las partes puede ser un rango cualquiera.

Aqu, el diagrama indica que una ventana de Windows


puede contener uno o ms botones.

PROGRAMACIN ORIENTADA A OBJETOS


Otra posible forma de representar la agregacin entre
clases es incluir el grfico de una clase (el agregado)
dentro del grfico de otra. Por ejemplo;

PROGRAMACIN ORIENTADA A OBJETOS


Si el agregado requiere especificar multiplicidad, escribimos
el rango correspondiente en la esquina superior derecha de
la clase.

PROGRAMACIN ORIENTADA A OBJETOS


Generalizaciones
La generalizacin es la relacin entre una clase ms general
y un clase ms especfica.
La clase ms especifica (denominada subclase) es
consistente con la clase ms general (denominada
superclase), y contiene informacin adicional.
La generalizacin permite la especializacin de las clases.

PROGRAMACIN ORIENTADA A OBJETOS


Generalizaciones
Se denota con un tringulo en el extremo del vnculo
correspondiente al elemento ms general. La relacin puede
interpretarse informalmente como es un.

El diagrama indica que un taxi es una clase particular de autos,


con una patente (placa) extra y un cdigo utilizado por la empresa.
Son heredados de la clase Auto todos los dems atributos, como la
patente oficial, el modelo, el motor, etc.

PROGRAMACIN ORIENTADA A OBJETOS


Cuando una clase posee ms de una subclase, pueden
organizarse en forma de rbol de la siguiente manera:

PROGRAMACIN ORIENTADA A OBJETOS


Ejemplo de diagrama de clases:

PROGRAMACIN ORIENTADA A OBJETOS


Evidencia de aprendizaje 1:
Genera la clase vehculo con todos sus atributos, acciones y
hereda al menos 3 tipos de vehculos.
A cada objeto heredado genera sus asociaciones,
agregaciones, rangos, multiplicidad, generalizaciones, etc. (por
lo menos 3).
Entregar trabajo individual con el diagrama completo.

PROGRAMACIN ORIENTADA A OBJETOS


Instituto Tecnolgico Superior de Guasave
RBRICA PARA EVIDENCIAS GRFICAS

Carrera:

Asignatura:

Tema:

Alumno/equipo:

DIMENSIONES O CRITERIOS A EVALUAR

% POR
CRITERIO

OBSERVACIONES (anotar razones por las que no


se alcanz el porcentaje ms alto)

% OBTENIDO

REDACCIN Y ORTOGRAFA

20%

Utiliza las reglas ortogrficas bsicas.

10

Claridad y continuidad del contenido.

10

FORMATO Y CONTENIDO

80%

Utiliza los elementos grficos vistos en clase

15

Ordena los elementos grficos de manera visual y entendible

15

Traza las relaciones de los grficos correctamente

10

Los elementos grficos son fcilles de interpretar

10

Se identifican claramente la idea principal y las ideas secundarias

15

Se identifican claramente las jerarquas existentes

15

Total de Puntos Obtenidos

PROGRAMACIN ORIENTADA A OBJETOS


Temario de la Asignatura

PROGRAMACIN ORIENTADA A OBJETOS


Competencias Especficas
Implementar clases y objetos cumpliendo las reglas de
la programacin orientada a objetos.
Implementar
constructores
y
destructores
inicializar atributos y liberar recursos.

para

Sobrecargar mtodos y operadores para optimizar el


cdigo de una clase.