SlideShare una empresa de Scribd logo
1 de 56
Escuela de Ingeniería de Sistemas Informáticos
UNIVERSIDAD LATINA
Lic.RandyValverdeValverde
1
Programación IV
Repaso:
2
¿Qué es el diseño de sistemas?
¿Qué es una guía para un diseño de calidad?
¿Cuáles son los atributos de calidad para un diseño adecuado?
¿Cuántos niveles para clases de diseño se sugieren?
¿Qué conoce como Patrón de diseño?
¿Qué es un anti-patron de diseño?
Randy V² - II Q – 2016, 100 % positivo
3 Randy V² - II Q – 2016, 100 % positivo
Guías para un Diseño de Calidad
4
. . .Hay una diferencia entre hacer que
un software trabaje, y hacerlo que
trabaje correctamente. . .
Randy V² - II Q – 2016, 100 % positivo
Programación orientada a objetos
5 Randy V² - II Q – 2016, 100 % positivo
6
Introducción
Paradigma: Ejemplo ilustrativo, enunciado modelo
Programación imperativa
Programación funcional
Programación lógica
Nuevo Paradigma:
Programación Orientada a Objetos (POO)
Randy V² - II Q – 2016, 100 % positivo
7
Programación Procedimental
Procedimiento 1
Procedimiento 2
Procedimiento 3
D
A
T
O
S
Randy V² - II Q – 2016, 100 % positivo
8
Programación Orientada a Objetos
Métodos
DATOS
Métodos
DATOS
Métodos Métodos
DATOS DATOS
Randy V² - II Q – 2016, 100 % positivo
9
Facilita la creación de software de calidad pues
sus características potencian:
 La mantención
 La extensión y
 La reutilización del software generado bajo este
paradigma
La POO se basa en la idea natural de un mundo
lleno de objetos y que la resolución de problemas
se realiza mediante el modelo de objetos
POO
Randy V² - II Q – 2016, 100 % positivo
10
La visión de Objetos:
Mesas
Sillas
Computadores
Autos
Cuentas bancarias
Partidos de fútbol
Perros, etc
POO
Randy V² - II Q – 2016, 100 % positivo
11
Los objetos se pueden Organizar según su
necesidad
Mamíferos : Perro, Ciervo
Teléfonos : Fijo, Celular
Deportes : Fútbol, Tenis
Vehículos : Automóvil, Camión
POO
Randy V² - II Q – 2016, 100 % positivo
12
METODOLOGÍA
Randy V² - II Q – 2016, 100 % positivo
13
La base de esta tecnología es:
Modelamiento
Modelar
con base en
Entidades
Los problemas
que se desea
resolver
Relevantes y
tangibles en el
problema
Randy V² - II Q – 2016, 100 % positivo
14
El modelo define una perspectiva abstracta del problema
Los datos que son afectados
Las operaciones que se aplican sobre los datos
Abstracción
Randy V² - II Q – 2016, 100 % positivo
15
Ejemplo
Para la administración docente, las entidades que participan son:
Administr. Docente
Profesores
Asignaturas
Alumnos
Salas
Randy V² - II Q – 2016, 100 % positivo
16
POO
Identificar los objetos importantes
Organizar los objetos en jerarquías
Otorgar, a los objetos, atributos relevantes que describan sus
características
Proveer, a cada objeto, las funciones inherentes a su
comportamiento
Randy V² - II Q – 2016, 100 % positivo
17
Conceptos de la POO
La POO trata de aproximarse al modo de actuar
del hombre y no al de la máquina
Conceptos fundamentales que sustentan la POO:
 Clase
 Objeto
 Instancia
 Atributos
 Métodos
Randy V² - II Q – 2016, 100 % positivo
18
Clase
Una clase es como un tipo de dato creado por el
usuario, que posee dos categorías de miembros:
 Atributos (Datos) ⇒ Estado
 Métodos (Algoritmos) ⇒ Comportamiento
Randy V² - II Q – 2016, 100 % positivo
19
Clase
En general, es posible crear una clase a partir de
cualquier objeto que esté a nuestro alrededor. Por
ejemplo:
 Persona
 Automóvil
 Mascota
Randy V² - II Q – 2016, 100 % positivo
20
Instancias-Objetos
Una Instancia es una ocurrencia de la clase
Al momento de crear un objeto se produce la instanciación
Un Objeto es una instancia de una Clase específica
Randy V² - II Q – 2016, 100 % positivo
21
Instancias-Objetos
EJEMPLO:
Suponer que existe la clase Vehículo
 El auto patente WF-4631 es una instancia de la
clase Vehículo, o sea, un objeto de esa clase

 La camioneta patente ZT-9283 es otra instancia
de la clase Vehículo
Randy V² - II Q – 2016, 100 % positivo
22
Atributos
Son los datos que caracterizan a los objetos de una clase y determinan
el estado de un objeto
 Marca
 Año
 Color
 Patente, etc.
Randy V² - II Q – 2016, 100 % positivo
23
Métodos
Representan todas aquellas acciones que se pueden realizar sobre
un objeto de cierta clase
En la implementación, estos métodos son segmentos de código en
la forma de funciones
La clase Vehículo puede incluir los métodos:
 Encender
 Acelerar
 Virar
 Frenar
Randy V² - II Q – 2016, 100 % positivo
24
Principios de la POO
Propiedades, que lo llevan a ser un estilo de desarrollo que
permite crear código re-utilizable
 Encapsulamiento
 Herencia
 Polimorfismo
Randy V² - II Q – 2016, 100 % positivo
25
ENCAPSULAMIENTO
Abstracción de Datos
Randy V² - II Q – 2016, 100 % positivo
26
Encapsulamiento
Proceso por el que se ocultan:
Las estructuras de datos
Los detalles de la implementación
 Permite considerar a los objetos como "cajas
negras", evitando que otros objetos accedan a
detalles que NO LES INTERESA
 Una vez creada la clase, las funciones usuarias no
requieren conocer los detalles de su implementación
Randy V² - II Q – 2016, 100 % positivo
27
Encapsulamiento
Toda clase tiene un conjunto de atributos y métodos asociados a
ella
Todos ellos están encapsulados o contenidos dentro de la misma
clase, de manera que son miembros de dicha clase
Esos métodos y atributos pueden ser utilizados por otras clases
sólo si la clase que los encapsula les brinda los permisos
necesarios para ello
Randy V² - II Q – 2016, 100 % positivo
28
Encapsulamiento
Atributos de una Cuenta Corriente:
 Número
 Saldo
Métodos:
 Depositar
 Girar
 Conocer el saldo
¿Cómo se almacenan estos datos?
Randy V² - II Q – 2016, 100 % positivo
29
HERENCIA
Organización jerárquica
Randy V² - II Q – 2016, 100 % positivo
30
Herencia
Permite reutilizar código creando nuevas clases a partir de las
existentes (construidas y depuradas)
Compromete una relación de jerarquía (es-un)
Una nueva clase se generará agregando atributos y/o código a una
clase existente
Una clase (derivada) puede heredar de otra clase (base):
 Atributos y
 Métodos
Randy V² - II Q – 2016, 100 % positivo
31
Herencia
E m p le a d o
S u e ld o
C lie n t e
C u e n t a
A lu m n o
C a r r e r a
P e r s o n a
N o m b r e
D ir e c c ió n
R U T
Randy V² - II Q – 2016, 100 % positivo
32
POLIMORFISMO
Randy V² - II Q – 2016, 100 % positivo
33
Polimorfismo
Capacidad que permite a dos clases diferentes responder de
forma distinta a un mismo mensaje
Esto significa que dos clases que tengan un método con el mismo
nombre y que respondan al mismo tipo de mensaje (es decir, que
reciban los mismo parámetros), ejecutarán acciones distintas
Randy V² - II Q – 2016, 100 % positivo
34
Ejemplo 1:
Al presionar el acelerador esperamos que aumente la velocidad
del auto, independiente de si se tiene un:
 Motor con carburador
 Motor con inyección electrónica
Polimorfismo
Randy V² - II Q – 2016, 100 % positivo
35
OBJETOS
'A'
3
MENSAJE
Sucesor RESULTADOS
'B'
4
Ejemplo 2:
Si se tienen las clases Entero y Char, ambas
responderán de manera distinta al mensaje
"Sucesor"
Polimorfismo
Randy V² - II Q – 2016, 100 % positivo
36
Objetos
En la POO se dice que un objeto: "integra
datos y algoritmos"
En la programación estructurada, variables y
funciones están separadas
Clase
Objeto
Instanciación de objetos
Tipo
Variable
Declaración de variables
POO Procedural
Randy V² - II Q – 2016, 100 % positivo
37
Objetos
Cada objeto es responsable de inicializarse y
destruirse en forma correcta
Un objeto consta de:
 Tiempo de vida
 Estado
 Comportamiento
Atributos
Métodos
Randy V² - II Q – 2016, 100 % positivo
38
Tiempo de vida de un objeto
La duración de un objeto en un programa
siempre está limitada en el tiempo
La mayoría de los objetos sólo existen
durante una parte de la ejecución del
programa
Los objetos son creados mediante un
mecanismo denominado instanciación
Los objetos dejan de existir cuando son
destruidos
Randy V² - II Q – 2016, 100 % positivo
39
Queda definido por sus atributos
Con él se definen las propiedades del objeto,
y el estado en que se encuentra en un
momento determinado de su existencia
Estado de un objeto
Randy V² - II Q – 2016, 100 % positivo
40
Queda definido por los métodos
Los prototipos de los métodos definidos en la
interfaz de una clase permiten a otros
objetos, que forman parte de la aplicación,
interactuar con los objetos de esa clase
Comportamiento de un objeto
Randy V² - II Q – 2016, 100 % positivo
41
Clases
Las clases son abstracciones que representan a un conjunto de
objetos con un:
 Comportamiento e
 Interfaz común
Es la implementación de un tipo de dato (considerando los objetos
como instancias de las clases)
Randy V² - II Q – 2016, 100 % positivo
42
Clases
Permiten definir y representar colecciones de
objetos
Proveen un modelo para la creación de objetos
Los elementos que componen la clase son
Atributos
Métodos
Representan el estado de un objeto
(variables de ejemplar)
Representan el comportamiento de un
objeto (funciones miembro)
Randy V² - II Q – 2016, 100 % positivo
43
Ejemplo de instancia de objetos
Clase: Cuenta corriente
 Atributos:
 Número
 Nombre
 Saldo
 Métodos:
 Depositar
 Girar
 Consultar saldo
Randy V² - II Q – 2016, 100 % positivo
44
Ejemplo de instancia de objetos
Clase: Cuenta corriente
Instanciación: Cuenta Corriente A, B
Objeto: A
Métodos
Depositar
Girar
Consultar
Num: 1234
Nombre: Juan
Saldo: 350.000
Métodos
Depositar
Girar
Consultar
Num: 9876
Nombre: María
Saldo: 450.600
Objeto: B
Randy V² - II Q – 2016, 100 % positivo
45
Mensaje
Mecanismo por el cual se solicita una acción sobre el objeto
Un programa en ejecución es una colección de objetos que se
crean, interactúan y se detruyen
La interacción se basa en mensajes que son enviados de un objeto
a otro, de modo que el emisor le pide al receptor la ejecución de
un método
Randy V² - II Q – 2016, 100 % positivo
46
Mensajes
Un objeto invoca un método como una reacción al recibir un
mensaje
La interpretación del mensaje dependerá del receptor
MédicoPaciente
Mensaje
Recepcionista
MédicoPaciente
Randy V² - II Q – 2016, 100 % positivo
47
Métodos
Un método es una función miembro de una clase
Establece el comportamiento del objeto
Opera directamente sobre el objeto que lo
invocó
Recibe, como parámetro implícito, el objeto que
lo invocó
Randy V² - II Q – 2016, 100 % positivo
48
Métodos
 Si el método requiere otros objetos de la clase, éstos deberán ser
pasados como parámetros explícitos y el método sólo podrá
acceder en forma indirecta a estos objetos
 Ejemplos:
 Depositar
 Girar
 Consultar
Randy V² - II Q – 2016, 100 % positivo
RESUMEN
50
Mensajes y métodos
Un objeto (agente emisor) envía un mensaje a otro objeto (agente
receptor)
El mensaje tiene codificada la petición de una acción
El mensaje incluye la información (argumentos) necesaria para
satisfacer la petición
Si el receptor acepta el mensaje, acepta la responsabilidad de
ejecutar la acción indicada
En respuesta a un mensaje, el receptor ejecuta un método para
satisfacer la petición
Randy V² - II Q – 2016, 100 % positivo
51
Clases y ejemplares
Todos los objetos son ejemplares de una clase
La clase del receptor determina el método que se activa como
respuesta a un mensaje
Todos los objetos de una clase usan el mismo método en respuesta a
mensajes similares
Randy V² - II Q – 2016, 100 % positivo
52
Clases y métodos
Los objetos son ejemplos de TAD’s
Un TAD tiene dos caras: una exterior, la que ve el usuario, y una
interior, la que sólo ve el programador
El usuario ve nada más que un conjunto de operaciones que definen
el comportamiento de la abstracción
El programador ve las variables de datos que se usan para mantener
el estado interno del objeto
Un ejemplar es un representante de una clase
Randy V² - II Q – 2016, 100 % positivo
53
Clases y métodos
Una variable de ejemplar es una variable interna mantenida por
un ejemplar
Cada ejemplar tiene su propia colección de variables de ejemplar
Las variables de ejemplar sólo son modificables por los métodos
definidos en la clase
Un objeto es la combinación de estado y comportamiento
Randy V² - II Q – 2016, 100 % positivo
54
Clases y métodos
El estado lo determinan las variables de ejemplar
El comportamiento lo determinan los métodos
Desde el exterior, los clientes sólo pueden ver el comportamiento
de los objetos
Desde el interior, los métodos proporcionan el comportamiento
apropiado mediante las modificaciones del estado
Randy V² - II Q – 2016, 100 % positivo
55
Clases y métodos
La interfaz describe la forma en que un objeto se conecta con el
mundo
La implementación describe cómo se logra la responsabilidad
prometida en la interfaz
Una clase se puede concebir como un registro con dos variedades
de campos: datos y procedimientos
Los datos constituyen las variables de ejemplar
Los procedimientos constituyen los métodos
Randy V² - II Q – 2016, 100 % positivo
Continuara…
56
Randy.valverde@openmailbox.org
Asunto: BSI-1100, VN, TAREA
 ,Nombre/ETC
Twitter: @RandyValverde
Randy V² - II Q – 2016, 100 % positivo

Más contenido relacionado

La actualidad más candente

Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOSergio Sanchez
 
Métricas orientadas a objeto
Métricas orientadas a objeto   Métricas orientadas a objeto
Métricas orientadas a objeto David Leon Sicilia
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaSergio Sanchez
 
r3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdfr3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdfRebeca Ortega
 
Metodología de desarrollo de softwaree
Metodología de desarrollo de softwareeMetodología de desarrollo de softwaree
Metodología de desarrollo de softwareeAbner Garcia
 
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"jenni30201
 
Ciclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezCiclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezNarzimar Sanchez
 
Métricas para código fuente y pruebas orientadas a objeto
Métricas para código fuente y pruebas orientadas a objetoMétricas para código fuente y pruebas orientadas a objeto
Métricas para código fuente y pruebas orientadas a objetoDavid Leon Sicilia
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptJavier Vélez Reyes
 
Modelamiento uml
Modelamiento umlModelamiento uml
Modelamiento umlalejo_13
 
Metodologias de desarrollo de software
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de softwareBlackeRuiz
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Lucero Mtz
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de softwareAbner Garcia
 

La actualidad más candente (20)

F004 p006 gfpi guìa de aprendizaje 3
F004 p006 gfpi guìa de aprendizaje 3F004 p006 gfpi guìa de aprendizaje 3
F004 p006 gfpi guìa de aprendizaje 3
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñO
 
Métricas orientadas a objeto
Métricas orientadas a objeto   Métricas orientadas a objeto
Métricas orientadas a objeto
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El Programa
 
r3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdfr3022837166376237762356d7263d524.05272591.pdf
r3022837166376237762356d7263d524.05272591.pdf
 
Metodología de desarrollo de softwaree
Metodología de desarrollo de softwareeMetodología de desarrollo de softwaree
Metodología de desarrollo de softwaree
 
Diseño orientado a objeto
Diseño orientado a objetoDiseño orientado a objeto
Diseño orientado a objeto
 
Desarrollo en espiral
Desarrollo en espiralDesarrollo en espiral
Desarrollo en espiral
 
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"¿Que es uml ? ACTVIDAD No 4  Jennifer Garcia Montiel 2 "D"
¿Que es uml ? ACTVIDAD No 4 Jennifer Garcia Montiel 2 "D"
 
Ciclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchezCiclo y diseno narzimar sanchez
Ciclo y diseno narzimar sanchez
 
Métricas para código fuente y pruebas orientadas a objeto
Métricas para código fuente y pruebas orientadas a objetoMétricas para código fuente y pruebas orientadas a objeto
Métricas para código fuente y pruebas orientadas a objeto
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScript
 
Modelamiento uml
Modelamiento umlModelamiento uml
Modelamiento uml
 
Metodologias de desarrollo de software
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de software
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
 
MDE & DSLs
MDE & DSLsMDE & DSLs
MDE & DSLs
 
Comunicacion y colaboracion
Comunicacion y colaboracionComunicacion y colaboracion
Comunicacion y colaboracion
 
Diccionario
DiccionarioDiccionario
Diccionario
 
Is.1p.4 Herramientas de modelamiento UML
Is.1p.4 Herramientas de modelamiento UMLIs.1p.4 Herramientas de modelamiento UML
Is.1p.4 Herramientas de modelamiento UML
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de software
 

Destacado

Uia pe-30 - randy valverde
Uia   pe-30 - randy valverdeUia   pe-30 - randy valverde
Uia pe-30 - randy valverdeRandy Valverde
 
Artículo de opinión del maltrato de mobiliario en la Secundaria 9
Artículo de opinión del maltrato de mobiliario en la Secundaria 9Artículo de opinión del maltrato de mobiliario en la Secundaria 9
Artículo de opinión del maltrato de mobiliario en la Secundaria 9Susana Ledezma
 
Manual para la conservacion y mantenimiento de la infraestructura de las Inst...
Manual para la conservacion y mantenimiento de la infraestructura de las Inst...Manual para la conservacion y mantenimiento de la infraestructura de las Inst...
Manual para la conservacion y mantenimiento de la infraestructura de las Inst...Teresa Clotilde Ojeda Sánchez
 
MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15
MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15
MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15Victor Raul Javier Alzamora
 
Plan de mantenimiento de bienes inmuebles escolares
Plan de mantenimiento de bienes inmuebles escolaresPlan de mantenimiento de bienes inmuebles escolares
Plan de mantenimiento de bienes inmuebles escolaresUNMSM
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 

Destacado (11)

Clase 2 redes
Clase 2 redesClase 2 redes
Clase 2 redes
 
10 Polimorfismo
10   Polimorfismo10   Polimorfismo
10 Polimorfismo
 
Uia pe-30 - randy valverde
Uia   pe-30 - randy valverdeUia   pe-30 - randy valverde
Uia pe-30 - randy valverde
 
Artículo de opinión del maltrato de mobiliario en la Secundaria 9
Artículo de opinión del maltrato de mobiliario en la Secundaria 9Artículo de opinión del maltrato de mobiliario en la Secundaria 9
Artículo de opinión del maltrato de mobiliario en la Secundaria 9
 
Clase 1 redes
Clase 1 redesClase 1 redes
Clase 1 redes
 
Clase 3 redes
Clase 3 redesClase 3 redes
Clase 3 redes
 
Clase 4 redes
Clase 4 redesClase 4 redes
Clase 4 redes
 
Manual para la conservacion y mantenimiento de la infraestructura de las Inst...
Manual para la conservacion y mantenimiento de la infraestructura de las Inst...Manual para la conservacion y mantenimiento de la infraestructura de las Inst...
Manual para la conservacion y mantenimiento de la infraestructura de las Inst...
 
MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15
MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15
MANTENIMIENTO PREVENTIVO 2015 Instructivo tecnico 2015 19 01-15
 
Plan de mantenimiento de bienes inmuebles escolares
Plan de mantenimiento de bienes inmuebles escolaresPlan de mantenimiento de bienes inmuebles escolares
Plan de mantenimiento de bienes inmuebles escolares
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 

Similar a Clase 2 - Programación IV - BSI1100

Poocpp2
Poocpp2Poocpp2
Poocpp2Leotom
 
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosDEDTE
 
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motorsIso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motorsEduhardo Rodrigez Rosales
 
Análisis de Modelos de Evaluación de Calidad de Software Libre
Análisis de Modelos de Evaluación de Calidad de Software LibreAnálisis de Modelos de Evaluación de Calidad de Software Libre
Análisis de Modelos de Evaluación de Calidad de Software LibreJose Raul Romero Mera
 
Sesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxSesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxAndersonHernandezara
 
Red social facebook en el aprendizaje colaborativo
Red social facebook en el aprendizaje colaborativoRed social facebook en el aprendizaje colaborativo
Red social facebook en el aprendizaje colaborativoRaekyta
 
MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.
MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.
MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.Paul Aburto Salazar
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1johnny herrera
 
Desarrollo de Software fundamentos POO 1era Parte subido JHS
Desarrollo de Software fundamentos POO 1era Parte subido JHSDesarrollo de Software fundamentos POO 1era Parte subido JHS
Desarrollo de Software fundamentos POO 1era Parte subido JHSjohnny herrera
 
Pu fase de inicio-casos uso
Pu fase de inicio-casos usoPu fase de inicio-casos uso
Pu fase de inicio-casos usoingridleona
 

Similar a Clase 2 - Programación IV - BSI1100 (20)

POO
POOPOO
POO
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
POOCPP2.ppt
POOCPP2.pptPOOCPP2.ppt
POOCPP2.ppt
 
Poocpp2
Poocpp2Poocpp2
Poocpp2
 
2 intro poo
2 intro poo2 intro poo
2 intro poo
 
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos
 
Poocpp2
Poocpp2Poocpp2
Poocpp2
 
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motorsIso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
Iso112 evaluacion a distancia (2012 0) (ed 02) (rpta) mundo motors
 
Análisis de Modelos de Evaluación de Calidad de Software Libre
Análisis de Modelos de Evaluación de Calidad de Software LibreAnálisis de Modelos de Evaluación de Calidad de Software Libre
Análisis de Modelos de Evaluación de Calidad de Software Libre
 
Sesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxSesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptx
 
Red social facebook en el aprendizaje colaborativo
Red social facebook en el aprendizaje colaborativoRed social facebook en el aprendizaje colaborativo
Red social facebook en el aprendizaje colaborativo
 
MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.
MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.
MODELO RACI, METAS Y OBJETIVOS DE LA ESTRATEGIA SERVICIO DE TI.
 
Razi en blog
Razi en blogRazi en blog
Razi en blog
 
Glosario de términos
Glosario de términos Glosario de términos
Glosario de términos
 
Symfony parte 16
Symfony parte 16Symfony parte 16
Symfony parte 16
 
Symfony parte 6
Symfony parte 6Symfony parte 6
Symfony parte 6
 
13 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-113 desarrollo-de-software-fundamentos-poo-1
13 desarrollo-de-software-fundamentos-poo-1
 
Desarrollo de Software fundamentos POO 1era Parte subido JHS
Desarrollo de Software fundamentos POO 1era Parte subido JHSDesarrollo de Software fundamentos POO 1era Parte subido JHS
Desarrollo de Software fundamentos POO 1era Parte subido JHS
 
Pu fase de inicio-casos uso
Pu fase de inicio-casos usoPu fase de inicio-casos uso
Pu fase de inicio-casos uso
 

Clase 2 - Programación IV - BSI1100

  • 1. Escuela de Ingeniería de Sistemas Informáticos UNIVERSIDAD LATINA Lic.RandyValverdeValverde 1 Programación IV
  • 2. Repaso: 2 ¿Qué es el diseño de sistemas? ¿Qué es una guía para un diseño de calidad? ¿Cuáles son los atributos de calidad para un diseño adecuado? ¿Cuántos niveles para clases de diseño se sugieren? ¿Qué conoce como Patrón de diseño? ¿Qué es un anti-patron de diseño? Randy V² - II Q – 2016, 100 % positivo
  • 3. 3 Randy V² - II Q – 2016, 100 % positivo
  • 4. Guías para un Diseño de Calidad 4 . . .Hay una diferencia entre hacer que un software trabaje, y hacerlo que trabaje correctamente. . . Randy V² - II Q – 2016, 100 % positivo
  • 5. Programación orientada a objetos 5 Randy V² - II Q – 2016, 100 % positivo
  • 6. 6 Introducción Paradigma: Ejemplo ilustrativo, enunciado modelo Programación imperativa Programación funcional Programación lógica Nuevo Paradigma: Programación Orientada a Objetos (POO) Randy V² - II Q – 2016, 100 % positivo
  • 7. 7 Programación Procedimental Procedimiento 1 Procedimiento 2 Procedimiento 3 D A T O S Randy V² - II Q – 2016, 100 % positivo
  • 8. 8 Programación Orientada a Objetos Métodos DATOS Métodos DATOS Métodos Métodos DATOS DATOS Randy V² - II Q – 2016, 100 % positivo
  • 9. 9 Facilita la creación de software de calidad pues sus características potencian:  La mantención  La extensión y  La reutilización del software generado bajo este paradigma La POO se basa en la idea natural de un mundo lleno de objetos y que la resolución de problemas se realiza mediante el modelo de objetos POO Randy V² - II Q – 2016, 100 % positivo
  • 10. 10 La visión de Objetos: Mesas Sillas Computadores Autos Cuentas bancarias Partidos de fútbol Perros, etc POO Randy V² - II Q – 2016, 100 % positivo
  • 11. 11 Los objetos se pueden Organizar según su necesidad Mamíferos : Perro, Ciervo Teléfonos : Fijo, Celular Deportes : Fútbol, Tenis Vehículos : Automóvil, Camión POO Randy V² - II Q – 2016, 100 % positivo
  • 12. 12 METODOLOGÍA Randy V² - II Q – 2016, 100 % positivo
  • 13. 13 La base de esta tecnología es: Modelamiento Modelar con base en Entidades Los problemas que se desea resolver Relevantes y tangibles en el problema Randy V² - II Q – 2016, 100 % positivo
  • 14. 14 El modelo define una perspectiva abstracta del problema Los datos que son afectados Las operaciones que se aplican sobre los datos Abstracción Randy V² - II Q – 2016, 100 % positivo
  • 15. 15 Ejemplo Para la administración docente, las entidades que participan son: Administr. Docente Profesores Asignaturas Alumnos Salas Randy V² - II Q – 2016, 100 % positivo
  • 16. 16 POO Identificar los objetos importantes Organizar los objetos en jerarquías Otorgar, a los objetos, atributos relevantes que describan sus características Proveer, a cada objeto, las funciones inherentes a su comportamiento Randy V² - II Q – 2016, 100 % positivo
  • 17. 17 Conceptos de la POO La POO trata de aproximarse al modo de actuar del hombre y no al de la máquina Conceptos fundamentales que sustentan la POO:  Clase  Objeto  Instancia  Atributos  Métodos Randy V² - II Q – 2016, 100 % positivo
  • 18. 18 Clase Una clase es como un tipo de dato creado por el usuario, que posee dos categorías de miembros:  Atributos (Datos) ⇒ Estado  Métodos (Algoritmos) ⇒ Comportamiento Randy V² - II Q – 2016, 100 % positivo
  • 19. 19 Clase En general, es posible crear una clase a partir de cualquier objeto que esté a nuestro alrededor. Por ejemplo:  Persona  Automóvil  Mascota Randy V² - II Q – 2016, 100 % positivo
  • 20. 20 Instancias-Objetos Una Instancia es una ocurrencia de la clase Al momento de crear un objeto se produce la instanciación Un Objeto es una instancia de una Clase específica Randy V² - II Q – 2016, 100 % positivo
  • 21. 21 Instancias-Objetos EJEMPLO: Suponer que existe la clase Vehículo  El auto patente WF-4631 es una instancia de la clase Vehículo, o sea, un objeto de esa clase   La camioneta patente ZT-9283 es otra instancia de la clase Vehículo Randy V² - II Q – 2016, 100 % positivo
  • 22. 22 Atributos Son los datos que caracterizan a los objetos de una clase y determinan el estado de un objeto  Marca  Año  Color  Patente, etc. Randy V² - II Q – 2016, 100 % positivo
  • 23. 23 Métodos Representan todas aquellas acciones que se pueden realizar sobre un objeto de cierta clase En la implementación, estos métodos son segmentos de código en la forma de funciones La clase Vehículo puede incluir los métodos:  Encender  Acelerar  Virar  Frenar Randy V² - II Q – 2016, 100 % positivo
  • 24. 24 Principios de la POO Propiedades, que lo llevan a ser un estilo de desarrollo que permite crear código re-utilizable  Encapsulamiento  Herencia  Polimorfismo Randy V² - II Q – 2016, 100 % positivo
  • 25. 25 ENCAPSULAMIENTO Abstracción de Datos Randy V² - II Q – 2016, 100 % positivo
  • 26. 26 Encapsulamiento Proceso por el que se ocultan: Las estructuras de datos Los detalles de la implementación  Permite considerar a los objetos como "cajas negras", evitando que otros objetos accedan a detalles que NO LES INTERESA  Una vez creada la clase, las funciones usuarias no requieren conocer los detalles de su implementación Randy V² - II Q – 2016, 100 % positivo
  • 27. 27 Encapsulamiento Toda clase tiene un conjunto de atributos y métodos asociados a ella Todos ellos están encapsulados o contenidos dentro de la misma clase, de manera que son miembros de dicha clase Esos métodos y atributos pueden ser utilizados por otras clases sólo si la clase que los encapsula les brinda los permisos necesarios para ello Randy V² - II Q – 2016, 100 % positivo
  • 28. 28 Encapsulamiento Atributos de una Cuenta Corriente:  Número  Saldo Métodos:  Depositar  Girar  Conocer el saldo ¿Cómo se almacenan estos datos? Randy V² - II Q – 2016, 100 % positivo
  • 29. 29 HERENCIA Organización jerárquica Randy V² - II Q – 2016, 100 % positivo
  • 30. 30 Herencia Permite reutilizar código creando nuevas clases a partir de las existentes (construidas y depuradas) Compromete una relación de jerarquía (es-un) Una nueva clase se generará agregando atributos y/o código a una clase existente Una clase (derivada) puede heredar de otra clase (base):  Atributos y  Métodos Randy V² - II Q – 2016, 100 % positivo
  • 31. 31 Herencia E m p le a d o S u e ld o C lie n t e C u e n t a A lu m n o C a r r e r a P e r s o n a N o m b r e D ir e c c ió n R U T Randy V² - II Q – 2016, 100 % positivo
  • 32. 32 POLIMORFISMO Randy V² - II Q – 2016, 100 % positivo
  • 33. 33 Polimorfismo Capacidad que permite a dos clases diferentes responder de forma distinta a un mismo mensaje Esto significa que dos clases que tengan un método con el mismo nombre y que respondan al mismo tipo de mensaje (es decir, que reciban los mismo parámetros), ejecutarán acciones distintas Randy V² - II Q – 2016, 100 % positivo
  • 34. 34 Ejemplo 1: Al presionar el acelerador esperamos que aumente la velocidad del auto, independiente de si se tiene un:  Motor con carburador  Motor con inyección electrónica Polimorfismo Randy V² - II Q – 2016, 100 % positivo
  • 35. 35 OBJETOS 'A' 3 MENSAJE Sucesor RESULTADOS 'B' 4 Ejemplo 2: Si se tienen las clases Entero y Char, ambas responderán de manera distinta al mensaje "Sucesor" Polimorfismo Randy V² - II Q – 2016, 100 % positivo
  • 36. 36 Objetos En la POO se dice que un objeto: "integra datos y algoritmos" En la programación estructurada, variables y funciones están separadas Clase Objeto Instanciación de objetos Tipo Variable Declaración de variables POO Procedural Randy V² - II Q – 2016, 100 % positivo
  • 37. 37 Objetos Cada objeto es responsable de inicializarse y destruirse en forma correcta Un objeto consta de:  Tiempo de vida  Estado  Comportamiento Atributos Métodos Randy V² - II Q – 2016, 100 % positivo
  • 38. 38 Tiempo de vida de un objeto La duración de un objeto en un programa siempre está limitada en el tiempo La mayoría de los objetos sólo existen durante una parte de la ejecución del programa Los objetos son creados mediante un mecanismo denominado instanciación Los objetos dejan de existir cuando son destruidos Randy V² - II Q – 2016, 100 % positivo
  • 39. 39 Queda definido por sus atributos Con él se definen las propiedades del objeto, y el estado en que se encuentra en un momento determinado de su existencia Estado de un objeto Randy V² - II Q – 2016, 100 % positivo
  • 40. 40 Queda definido por los métodos Los prototipos de los métodos definidos en la interfaz de una clase permiten a otros objetos, que forman parte de la aplicación, interactuar con los objetos de esa clase Comportamiento de un objeto Randy V² - II Q – 2016, 100 % positivo
  • 41. 41 Clases Las clases son abstracciones que representan a un conjunto de objetos con un:  Comportamiento e  Interfaz común Es la implementación de un tipo de dato (considerando los objetos como instancias de las clases) Randy V² - II Q – 2016, 100 % positivo
  • 42. 42 Clases Permiten definir y representar colecciones de objetos Proveen un modelo para la creación de objetos Los elementos que componen la clase son Atributos Métodos Representan el estado de un objeto (variables de ejemplar) Representan el comportamiento de un objeto (funciones miembro) Randy V² - II Q – 2016, 100 % positivo
  • 43. 43 Ejemplo de instancia de objetos Clase: Cuenta corriente  Atributos:  Número  Nombre  Saldo  Métodos:  Depositar  Girar  Consultar saldo Randy V² - II Q – 2016, 100 % positivo
  • 44. 44 Ejemplo de instancia de objetos Clase: Cuenta corriente Instanciación: Cuenta Corriente A, B Objeto: A Métodos Depositar Girar Consultar Num: 1234 Nombre: Juan Saldo: 350.000 Métodos Depositar Girar Consultar Num: 9876 Nombre: María Saldo: 450.600 Objeto: B Randy V² - II Q – 2016, 100 % positivo
  • 45. 45 Mensaje Mecanismo por el cual se solicita una acción sobre el objeto Un programa en ejecución es una colección de objetos que se crean, interactúan y se detruyen La interacción se basa en mensajes que son enviados de un objeto a otro, de modo que el emisor le pide al receptor la ejecución de un método Randy V² - II Q – 2016, 100 % positivo
  • 46. 46 Mensajes Un objeto invoca un método como una reacción al recibir un mensaje La interpretación del mensaje dependerá del receptor MédicoPaciente Mensaje Recepcionista MédicoPaciente Randy V² - II Q – 2016, 100 % positivo
  • 47. 47 Métodos Un método es una función miembro de una clase Establece el comportamiento del objeto Opera directamente sobre el objeto que lo invocó Recibe, como parámetro implícito, el objeto que lo invocó Randy V² - II Q – 2016, 100 % positivo
  • 48. 48 Métodos  Si el método requiere otros objetos de la clase, éstos deberán ser pasados como parámetros explícitos y el método sólo podrá acceder en forma indirecta a estos objetos  Ejemplos:  Depositar  Girar  Consultar Randy V² - II Q – 2016, 100 % positivo
  • 50. 50 Mensajes y métodos Un objeto (agente emisor) envía un mensaje a otro objeto (agente receptor) El mensaje tiene codificada la petición de una acción El mensaje incluye la información (argumentos) necesaria para satisfacer la petición Si el receptor acepta el mensaje, acepta la responsabilidad de ejecutar la acción indicada En respuesta a un mensaje, el receptor ejecuta un método para satisfacer la petición Randy V² - II Q – 2016, 100 % positivo
  • 51. 51 Clases y ejemplares Todos los objetos son ejemplares de una clase La clase del receptor determina el método que se activa como respuesta a un mensaje Todos los objetos de una clase usan el mismo método en respuesta a mensajes similares Randy V² - II Q – 2016, 100 % positivo
  • 52. 52 Clases y métodos Los objetos son ejemplos de TAD’s Un TAD tiene dos caras: una exterior, la que ve el usuario, y una interior, la que sólo ve el programador El usuario ve nada más que un conjunto de operaciones que definen el comportamiento de la abstracción El programador ve las variables de datos que se usan para mantener el estado interno del objeto Un ejemplar es un representante de una clase Randy V² - II Q – 2016, 100 % positivo
  • 53. 53 Clases y métodos Una variable de ejemplar es una variable interna mantenida por un ejemplar Cada ejemplar tiene su propia colección de variables de ejemplar Las variables de ejemplar sólo son modificables por los métodos definidos en la clase Un objeto es la combinación de estado y comportamiento Randy V² - II Q – 2016, 100 % positivo
  • 54. 54 Clases y métodos El estado lo determinan las variables de ejemplar El comportamiento lo determinan los métodos Desde el exterior, los clientes sólo pueden ver el comportamiento de los objetos Desde el interior, los métodos proporcionan el comportamiento apropiado mediante las modificaciones del estado Randy V² - II Q – 2016, 100 % positivo
  • 55. 55 Clases y métodos La interfaz describe la forma en que un objeto se conecta con el mundo La implementación describe cómo se logra la responsabilidad prometida en la interfaz Una clase se puede concebir como un registro con dos variedades de campos: datos y procedimientos Los datos constituyen las variables de ejemplar Los procedimientos constituyen los métodos Randy V² - II Q – 2016, 100 % positivo
  • 56. Continuara… 56 Randy.valverde@openmailbox.org Asunto: BSI-1100, VN, TAREA  ,Nombre/ETC Twitter: @RandyValverde Randy V² - II Q – 2016, 100 % positivo