Sie sind auf Seite 1von 44

Metodologías

de
Programación
SESIÓN 04: “Introducción a la Metodología
de Programación Orientada a Objetos”

Ing. Héctor M. Zelada Valdivieso


Email: hzelada@usat.edu.pe

www.usat.edu.pe
www.usat.edu.pe
Sesión 04: “Introducción a la Metodología de
Programación Orientada a Objetos”

Objetivos:
Comprender los fundamentos teóricos de las Metodologías de Programación y la
Programación Orientada a Objetos (POO).

Actividades:
Introducción
• Control de asistencia
• Propósito de la sesión
Desarrollo
• Metodologías de Programación
• Fundamentos de POO
Cierre
• Presentar conclusiones de la sesión.
• Brindar información para la próxima sesión.

Recursos:
Aula Virtual, Plataforma Zoom, PPT, Netbeans

2 www.usat.edu.pe
Introducción

Control de
asistencia

3 www.usat.edu.pe
Introducción
Propósito de la sesión:

Objetivo de la sesión:
Comprender los fundamentos teóricos de las metodologías de
programación y la programación orientada a objetos.

Contribuye al logro

Resultado de Aprendizaje de la Unidad 01:


Construye programas de computadora en Java utilizando Interfaces Gráficas de Usuario y
aplicando los fundamentos de la programación orientada a objetos.

Contribuye al logro

Competencia del perfil de egreso :


Implementar software de calidad que aporten mejoras significativas a las organizaciones y
a la sociedad, utilizando metodologías, modelos, herramientas modernas, estándares de
calidad, buenas prácticas y normativas vigentes.

4 www.usat.edu.pe
Introducción

Contenidos:
Metodologías de Programación:
ü Concepto de Metodología de Programación
ü Importancia de las Metodologías de Programación
ü Tipos de Metodologías de Programación

Fundamentos de Programación Orientada a Objetos:


ü Metodología de Programación Orientada a Objetos
ü Objeto
ü Atributo
ü Método
ü Clase
ü Paquete de Clases
ü Mensaje
ü Diagrama de Clases - UML

5 www.usat.edu.pe
Metodologías de Programación

Concepto de metodología de
programación
Las metodologías de programación,
también conocidas como paradigmas
de programación, son reglas, marcos
de referencia, modelos, directrices o
patrones que definen la forma como
solucionar un problema. Es decir
influyen en la manera como diseñamos
una solución y como escribimos un
programa de computadora.

6 www.usat.edu.pe
Metodologías de Programación
Importancia de las Metodologías de Programación
Si no siguiéramos una metodología de programación, tendríamos un diseño como el siguiente:

Inicio Síntomas:
Paso 1 • Creación libre de bucles
Paso 2 • Interrupción del flujo normal de los bucles.
• Uso frecuente de sentencias:
Goto
Según sea
un criterio Break
Ir A … Exit
• No se usa necesariamente Procedimientos y
Funciones.
• Uso innecesario de variables Globales.
Paso 3
Paso 4

Fin
7 www.usat.edu.pe
Metodologías de Programación
Importancia de las Metodologías de Programación
Ejemplo de programación en C sin metodología.

Programación sin
metodología

8 www.usat.edu.pe
Metodologías de Programación
Importancia de las Metodologías de Programación
Seguir una metodología de programación es muy importante debido a que si no seguimos
una, podría ocurrir lo siguiente:

¿Qué pasaría si no usamos una metodología de programación?

- El programador programa libremente, definiendo sus propias reglas.


- Se genera un programa desordenado.
- El programa es difícil entenderlo.
- El programa es difícil de depurarlo.
- El programa es propenso a tener errores (Pierde fiabilidad).
- Se hace más difícil darle mantenimiento al programa.
- Complica poder trabajar en equipo debido a que no seguimos una misma metodología.
- Genera dependencia del programador.
- Perjudica, el no llegar a tener un producto de software de calidad

9 www.usat.edu.pe
Metodologías de Programación

Tipos de metodologías de programación


Los tipos de metodologías o paradigmas de programación mas implementados son:

• Metodología de Programación Estructurada


• Metodología de Programación Orientada a Objetos

Aunque podrá encontrar en la literatura otros tipos como:

o Paradigma de programación lógica


o Paradigma de programación funcional
o Paradigma de programación declarativo
o Paradigma de programación imperativo
o Paradigma de programación dirigido por eventos
o Paradigma de programación Orientada a Aspectos

10 www.usat.edu.pe
Metodologías de Programación
Tipos de metodologías de programación
Paradigma Estructurado:

• Surge en los años 60.


• Se centra en el proceso.
• Junto con esta metodología de programación, nacen las estructuras básicas de
programación. Dijkstra manifiesta que todo programa puede ser escrito
utilizando sólo tres estructuras básicas: Secuenciales, Condicionales o selectivas
(simples: if, dobles: if-else, múltiples: switch), Repetitivas (for, while, do-while)
• Los datos y los procesos se manejan de manera separada y en muchos casos
sobre el mismo archivo de código fuente.

Estructura de datos Procesos

struct fecha void llenarFecha(fecha &f);


{ void mostrarFecha();
int dia;
int mes;
int año;
};

11 www.usat.edu.pe
Metodologías de Programación
…Paradigma Estructurado:

• Bajo este paradigma, se puede programar modularmente, dividiendo el programa en módulos, los
cuales se implementan como procedimientos o funciones.

Modulo 1 Modulo 2 Modulo 3

Comunicación

Modulo = Procedimiento y Funciones


Comunicación = Parámetros por Valor y por Referencia. Para el
caso de funciones el retorno de valores también.
Los Módulos deben ser simples es decir solo realizar una tarea.
• Lenguaje de programación: C, Basic, etc.

12 www.usat.edu.pe
Metodologías de Programación
…Paradigma Estructurado:

Ejemplo de programación estructurada y modular

Programación Estructurada Programación Estructurada Modular

13 www.usat.edu.pe
Metodologías de Programación
…Tipos de metodologías de programación
Paradigma Orientado a Objetos:

• Surge en los años 70 cambiando la forma como se diseñaba y construía


soluciones, ofreciendo ventajas como reusabilidad, mantenibilidad y
portabilidad.
• Es un paradigma que centra en los objetos como elementos fundamentales en
la construcción de la solución.
• Según Booch, un paradigma Orientado a Objetos es aquel que utiliza objetos en
la construcción de un programa, los cuales son instancias de clases que están
unidas jerárquicamente mediante relaciones de herencia.
• Lenguaje de programación: C++, Java, C#, VB.Net, J#,etc.

14 www.usat.edu.pe
Metodologías de Programación

…Paradigma Orientado a Objetos:

• A diferencia de metodología estructurada que trataban a los datos separados


de los procesos, la metodología orientada a objetos, envuelve a los datos y los
procesos en una sola entidad llamada objeto.

Fecha

- dia: int
Atributos (datos)
- mes: int
- año: int

+ llenarFecha (d: int, m: int, a: int) Métodos (procesos)


+ mostrarFecha(): String

15 www.usat.edu.pe
Metodologías de Programación
…Paradigma Orientado a Objetos:

Ejemplo de programación orientada a objetos (Diseño).

ApRectangulo Rectangulo

- base: float
- altura: float
Relación
De Dependencia + setBase (b: float)
+ main (arg[]: String)
+ setAltura (h: float)
+ calcularArea(): float

Diagrama de Clases UML

16 www.usat.edu.pe
Metodologías de Programación
…Paradigma Orientado a Objetos:

Ejemplo de programación orientada a objetos.

Programación Orientada a Objetos

17 www.usat.edu.pe
Programación Orientada a Objetos

• Concepto

• La Programación Orientada a Objetos (POO) es un método de implementación


en el que los programas se organizan como colecciones cooperativas de
objetos, cada uno de los cuales representan una instancia de alguna clase, y
cuyas clases son todos miembros de una jerarquía de clases unidas mediante
relaciones de herencia [1].

• La Programación Orientada a Objetos, es un enfoque de desarrollo de software


que organiza tanto el problema como su solución como una colección de
objetos discretos; donde tanto la estructura de datos como el compartimiento
están incluidos en la representación [2].

18 www.usat.edu.pe
Programación Orientada a Objetos

• …Concepto
• La Programación Orientada a Objetos es una metodología o paradigma de
programación que utiliza a los Objetos como elementos fundamentales para
construir un programa de computadora. Surge en los años 70 y a diferencia del
paradigma o metodología de programación estructurada, que se centra en el
proceso, este paradigma se centra en el objeto que esta siendo afectado. En
esta metodología, después que hemos identificado el objeto, tenemos que
identificar sus atributos (características, propiedades o estado del objeto) y sus
métodos (comportamiento, operaciones o acciones que realiza el objeto).

• Esta metodología o paradigma orientado a objetos encapsula en uno sólo datos


(atributos) y procesos (métodos), a diferencia del paradigma estructurado que
los trabaja de manera aislada. Este paradigma se caracteriza por que presenta
las siguientes propiedades o características: Abstracción, Encapsulamiento,
Herencia y Polimorfismo.

19 www.usat.edu.pe
Programación Orientada a Objetos

• Objeto
• El objeto es una instancia de una clase que combina datos y procedimientos, un objeto es
simplemente una variable de un tipo de clase, y para diferenciar las variables de tipo clase de
las variables de otro tipo, se utiliza el término objeto [3].
• El objeto es una entidad que tiene unos atributos particulares, las propiedades, y unas formas
de operar sobre ellos, los métodos [4].

• Los objetos son cosas tangibles o intangibles que intervienen en el sistema que estamos
analizando y es relevante para éste. Los objetos tienen unos atributos que representan sus
características, propiedades o su estado y unos métodos que representan su comportamiento o
acciones que puede realizar.

Ejemplo: Plumón color negro, Plumón color azul, Celular de marca Motorola, etc.

20 www.usat.edu.pe
Programación Orientada a Objetos

• …Objeto

• Shaer, Mellor y Yourdon definen categorías que nos pueden ayudar a identificar
objetos :

- Cosas tangibles (mesa, silla, plumón, etc.)


- Roles o papeles de las personas (cliente, proveedor, alumno, médico, etc.)
- Transacción (compras, ventas, matricula, cita, etc.)
- Organizaciones (empresa, área, equipo, etc.)
- Incidentes (suceso, vuelo, accidente, evento, etc.)
- Lugares (sala de embarque, muelle de carga, etc.)

21 www.usat.edu.pe
Programación Orientada a Objetos
• Atributo

• Los atributos son las características de cada instancia de la clase [5].

• Los atributos son las variables que se declaran al principio de la clase, fuera de los
métodos. Estas variables son compartidas por todos los métodos de la clase [4].

• Los atributos son las características, propiedades, estado o datos de los objetos. Se dice
que el estado del objeto es el valor que tienen todos sus atributos en un instante dado.

• En algunos libros de programación se les denomina, variables miembro, variables de


instancia, o campos.

Partes:
- Los atributos tienen un especificador de acceso, el cual puede ser público (+),
privado (-) , protegido(#) o amistoso.
- Los atributos tienen un tipo de dato.
- Los atributos tendrán un nombre
- Ejemplo en Java: private float base;

22 www.usat.edu.pe
Programación Orientada a Objetos
• Método
• Los métodos son las operaciones que muestran el comportamiento del objeto [6].

• Un método se implementa en una clase y determina cómo tiene que actuar el objeto
cuando recibe el mensaje vinculado con ese método. A su vez, un método puede también
enviar mensajes a otros objetos solicitando una acción o información [4].

• En algunos libros de programación se denominan métodos miembro o funciones


miembros.

Partes:
- Los métodos tienen un especificador de acceso, el cual puede ser público (+),
privado (-) , protegido(#) o amistoso.
- Los métodos pueden retornar un valor o no.
- Los métodos tendrán un nombre.
- Los métodos pueden tener parámetros.
- Los métodos tienen una definición (cuerpo del método).
- Ejemplo en Java:
public float calcularArea (float base, float altura)
{ // Definición del método
}

23 www.usat.edu.pe
Programación Orientada a Objetos

• Clase

• Una clase describe un grupo de objetos con estructuras y comportamientos


común [7].

• Las clases encapsulan o agrupan los atributos y métodos comunes a varios


objetos, son una plantilla, prototipo o tipo de dato especial que permite crear
objetos. Por eso se dice que los objetos son instancias de una clase, si no
tenemos una clase, no podremos crear el objeto ya que el objeto se crea a
partir de una clase. Estas clases también tienen un especificador de acceso que
puede ser público (accedido por cualquier clase) o de paquete (sólo puede ser
accedido por clases del mismo paquete).

24 www.usat.edu.pe
Programación Orientada a Objetos
• …Clase
Dos métodos u operaciones típicas en cualquier clase son:

- Constructor: Es un método especial de una clase que es llamado automáticamente siempre que
se crea un objeto de la misma. Se encarga de la creación del objeto e inicializa su estado. Es decir
inicializa los atributos del objeto, ya sea a sus valores iniciales que ha definido el programador o
si no los hubiera los inicializa a los valores predeterminados del sistema (atributos numéricos: 0;
atributos de carácter: ‘\0’; referencias a objetos: null). El nombre de este método constructor en
Java suele ser el mismo de la clase a la cual sirvén.
El constructor por omisión es un constructor sin parámetros que será invocado cada vez que se
construya un objeto. Pero el programador puede agregar otros métodos constructor.

- Destructor: Es un método que se ejecuta automáticamente cada vez que se destruye un objeto,
en el caso de java es el método finalize. Cuando un objeto es destruido, se llama al método
finalize, y luego el recolector de basura se encarga de eliminar el objeto, liberando la memoria
ocupada. Un objeto es destruido cuando se eliminan todas las referencias al mismo, una
referencia a un objeto puede ser eliminada porque el flujo de ejecución salga fuera del ámbito
donde esta declarada, o porque explícitamente se le asigna el valor null. A diferencia de los
constructores sólo se puede definir un destructor

25 www.usat.edu.pe
Programación Orientada a Objetos
• Paquete de clases
• Los paquetes son un mecanismo utilizado por java que permite organizar las
clases de una manera estructurada y jerárquica. Básicamente, un paquete es un
directorio en el que se almacenan los archivos class con los byte codes de la
clase; un paquete puede a su vez estar compuestos de otros subpaquetes [4].

• Los paquetes son contenedores de clases e interfaces y también pueden


contener a otros paquetes. Todas clases contenidas en un paquete son clases
amigas y pueden compartir atributos y métodos dentro de este ámbito [3].

• Un paquete es un directorio que agrupa a las clases, y además dentro de un


paquete puede haber otros paquetes. Debemos saber que hay paquetes que ya
vienen con los lenguajes de programación y otros paquetes son creados por el
programador.

26 www.usat.edu.pe
Programación Orientada a Objetos
• …Paquete de clases
Ejemplo de paquetes:

java.lang : Donde encontraremos a la clase System, Math, Byte, Short, Integer,Long, Float, Double, String, etc.
El compilador de java incluye automáticamente este paquete.
java.io : Donde encontraremos a la clase BufferedReader, InputStreamReader, IOException, etc.
java.util : Donde encontraremos a la clase Scanner, Date, Random, Arrays, Vector, etc.
javax.swing: Donde encontraremos a la clase JOptionPane, etc.

Para incluir clases en nuestros programas, tenemos que escribir:


import nombrepaquete.NombreClase;

Cuando en lugar del nombre de la clase colocamos * significa que importaremos todas las clases de ese
paquete. Ejemplo:
import java.lang.*;
import java.io.*;

27 www.usat.edu.pe
Programación Orientada a Objetos

• Mensaje.

Un mensaje es la forma como se comunican los objetos entre sí. Se dice que son ordenes que
se le envía a un objeto para que haga algo. Es decir es una orden que hace que un objeto
ejecute algunos de sus métodos [8].

Forma de enviar un mensaje a un objeto:

nombreObjeto.nombreMetodo (parámetros)

Objeto receptor Nombre del mensaje Parámetros


dependiendo del
método

28 www.usat.edu.pe
Programación Orientada a Objetos
• Diagrama de clases – UML (Lenguaje de Modelado Unificado)
nombrePaquete::NombreClase
Nombre

Esp. Acceso nombreAtributo : tipoDato= Valor Inicial

Atributos

Esp. Acceso nombreMetodo (param1: tipoDato, param2: ipoDato, ..) : tipoDatoRetorno


Métodos

Especificador de acceso: Público (+), Privado (-), Protegido (#), por omisión (si no se indica nada)
Alcance de los miembros (atributos y métodos) de una clase:
- De clase: No se necesita crear un objeto para acceder a los atributos y métodos de la clase. Son compartidos por
todos los objetos creados de esa clase. En el diagrama se indica subrayando todo el atributo o todo el método, se
caracteriza por que el valor de los atributos permanece estático, es el mismo para todos los objetos que se creen, se
usa por ejemplo para llevar un control de la cantidad de objetos creados de una clase determinada. En java se indica
con la palabra static
- De instancia o de objeto: Se necesita crear un objeto para acceder a los atributos y métodos de la clase. En el
diagrama se indica esto no subrayando los atributos o métodos.

29 www.usat.edu.pe
Programación Orientada a Objetos

• …Diagrama de clases –UML


Ejemplo:

Rectangulo java.lang::Math

- base: float + PI: double = 3.141592653589793


java.lang es el nombre del
- altura: float paquete donde se encuentra
la clase Math.

+ setBase (b: float) + pow (x:double, y:double): double Los miembros de la clase
+ sqrt (x: double) : double Math (atributos y métodos)
+ setAltura (h: float)
+ ceil (x: double): double tienen alcance de clase; por
+ getBase (): float eso en el diagrama aparecen
+ floor (x: double): double
+ getAltura(): float subrayados
+ round (x: double) : long
+ calcularArea(): float

30 www.usat.edu.pe
Programación Orientada a Objetos
• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)

Especificadores o modificadores de acceso

31 www.usat.edu.pe
Programación Orientada a Objetos
• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)
Relaciones :
ClaseIndependiente

1.- Dependencia:

ClaseDependiente

Rectángulo

ApRectángulo

Si la clase independiente se altera la clase que depende de ella se ve afectada.

32 www.usat.edu.pe
Programación Orientada a Objetos
…Diagrama de clases –UML (Lenguaje de Modelado Unificado)

…Dependencia
java.lang::System java.lang::String

java.util::Scanner

java.lang::Math Circulo
+ PI: double ApCirculo
- radio: float

+ setRadio (r: float)


+ getRadio ():float
+ main (arg[]: String)
+ area(): float
+ longitud():float

33 www.usat.edu.pe
Programación Orientada a Objetos
• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)
2.- Herencia o Generalización: Persona

ClasePadre
Clase Padre
Clase Base
Super Clase

Natural Jurídica

ClaseHija1 ClaseHija2 ClaseHija n


Clase Hija
Clase Derivada
Sub Clase

La clase padre encapsula atributos y métodos comunes de las clases hijas, y la clase hija hereda (reutiliza)
estos atributos y métodos de la clase padre si el especificador de acceso lo permite (+ y #)

34 www.usat.edu.pe
Programación Orientada a Objetos
• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)
… Herencia o Generalización
Trabajador

Figura2D

Docente Administrativo

Rectángulo Triángulo Cuadrado

TiempoCompleto PorHoras

35 www.usat.edu.pe
Programación Orientada a Objetos

• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)


… Herencia o Generalización
Cuenta

Vehículo

Ahorros Corriente

Automóvil Camión Barco Avión

36 www.usat.edu.pe
Programación Orientada a Objetos
• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)
… Herencia o Generalización
Persona

A diferencia de los
Profesor Investigador ejemplos anteriores
que heredaban de una
sola clase padre
(Herencia Simple), este
ejemplo se trata de
Herencia Múltiple,
donde la clase hija
(ProfesorInvestigador)
hereda de varios
ProfesorInvestigador padres (Investigador y
Profesor).
Nota: Java no soporta
herencia múltiple

37 www.usat.edu.pe
Programación Orientada a Objetos
• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)
3.- Asociación
Clase2

Clase1

Alumno
Escuela
Multiplicidad: 1 1..*
1..* : Uno a muchos
0..* : Cero a muchos
M : Indicar un número

38 www.usat.edu.pe
Programación Orientada a Objetos

• …Diagrama de clases –UML (Lenguaje de Modelado Unificado)


4.- Interfaces:
<<interfaz>>
Arrancable

motorArrancado: boolean = false

arrancar ()
detenerMotor()

Coche

arrancar()
detenerMotor()

39 www.usat.edu.pe
Programación Orientada a Objetos

• Diagrama de Objetos – UML (Lenguaje de Modelado Unificado)

nombreObjeto:NombreClase

nombreAtributo : Valor Actual

Ejemplo:

objRec: Rectángulo objDep1: Departamento

base: 67.50 Nombre: “Ventas”


altura: 45.90

40 www.usat.edu.pe
Programación Orientada a Objetos

Actividad:

Resolver
cuestionario

www.usat.edu.pe
Cierre
• Conclusiones:
- Las 2 metodologías más conocidas e implementadas son las metodologías de programación
estructurada (año 60’s) y la metodología de programación orientada a objetos (año 70’s).
- La principal diferencia entre la metodología de programación estructurada y la orientada a objetos es
que la primera se centra en el proceso y trabaja los datos separados de éstos; mientras que la
orientada a objetos se centra en los objetos bajo estudio y por medio de estos objetos mantiene
encerrados o encapsulados a los datos y a los procesos.
- Los términos claves en la metodología de programación orientada a objetos son: Objeto, Clase y
Herencia.
- Para poder crear objetos, es necesario que existan primero las clases, debido a que los objetos son
instancias de las clases; es decir se crean a partir de éstas. Estas clases pueden estar agrupadas en unas
carpetas o directorios llamados paquetes.
- Todos los objetos tienen atributos (características) y métodos (comportamiento, operaciones)
- Para poder hacer diagrama de clases podemos usar el Lenguaje de Modelado Unificado (UML).

• Próxima sesión:
– Introducción a la programación orientada a objetos en Java.

42 www.usat.edu.pe
Referencias
[1] Grady Booch, Análisis y diseño orientado a Objetos con Aplicaciones, Segunda Ed. México: Addison
Wesley, 1995.

[2] Shari Lawrence Pfleeger, Ingeniería de Software: Teoría y Práctica, Buenos Aires: Perarson Educación,
2002.

[3] J. Castañeda, Desarrollo de Aplicaciones en Java, Primera Ed. Perú: Ritisa Graff, 2007.

[4] Fco. Javier Ceballos Sierra, Java 2: Curso de Programación, Segunda Ed., México D.F.: Alfaomega
Grupo Editor, 2003.

[5] Bertrand Meyer, Construcción de un Software Orientado a Objetos, Madrid: Pretince Hall, 1999.

[6] Rogers Pressman, Ingeniería de Software: Un enfoque práctico, México D.F.: Mc Graw-Hill, 2005.

[7] Alfredo Weitzenfeld, Ingeniería de Software Orientada a Objetos con UML, Java e Internet, México:
Thomson. Learnign, inc., 2005.

[8] Luis Joyanes, Fundamentos de Programación I y algoritmos, estructuras de datos y objetos I, Tercera
Ed., España: Madrid, MgGraw – Hill, 2003.

43 www.usat.edu.pe
Ing. Héctor Miguel Zelada Valdivieso
hzelada@usat.edu.pe

http://www.facebook.com/usat.peru

https://twitter.com/usatenlinea

https://www.youtube.com/user/tvusat

https://plus.google.com/+usateduperu

www.usat.edu.pe

Das könnte Ihnen auch gefallen