Download - Clase 2 - Programación IV - BSI1100
![Page 1: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/1.jpg)
Escuela de Ingeniería de Sistemas Informáticos
UNIVERSIDAD LATINALic. Randy Valverde Valverde
1
Programación IV
![Page 2: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/2.jpg)
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
![Page 3: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/3.jpg)
3 Randy V² - II Q – 2016, 100 % positivo
![Page 4: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/4.jpg)
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
![Page 5: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/5.jpg)
Programación orientada a objetos
5 Randy V² - II Q – 2016, 100 % positivo
![Page 6: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/6.jpg)
6
IntroducciónParadigma: Ejemplo ilustrativo, enunciado
modeloProgramación imperativaProgramación funcionalProgramación lógica
Nuevo Paradigma:Programación Orientada a Objetos (POO)
Randy V² - II Q – 2016, 100 % positivo
![Page 7: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/7.jpg)
7
Programación Procedimental
Procedimiento 1
Procedimiento 2
Procedimiento 3
DATOS
Randy V² - II Q – 2016, 100 % positivo
![Page 8: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/8.jpg)
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
![Page 9: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/9.jpg)
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
![Page 10: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/10.jpg)
10
La visión de Objetos:
MesasSillasComputadoresAutosCuentas bancariasPartidos de fútbolPerros, etc
POO
Randy V² - II Q – 2016, 100 % positivo
![Page 11: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/11.jpg)
11
Los objetos se pueden Organizar según su necesidad
Mamíferos : Perro, CiervoTeléfonos : Fijo, CelularDeportes : Fútbol, TenisVehículos : Automóvil, Camión
POO
Randy V² - II Q – 2016, 100 % positivo
![Page 12: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/12.jpg)
12
METODOLOGÍA
Randy V² - II Q – 2016, 100 % positivo
![Page 13: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/13.jpg)
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
![Page 14: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/14.jpg)
14
El modelo define una perspectiva abstracta del problemaLos datos que son afectadosLas operaciones que se aplican sobre los datos
Abstracción
Randy V² - II Q – 2016, 100 % positivo
![Page 15: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/15.jpg)
15
EjemploPara la administración docente, las entidades
que participan son:
Administr. Docente
Profesores
Asignaturas
Alumnos
Salas
Randy V² - II Q – 2016, 100 % positivo
![Page 16: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/16.jpg)
16
POOIdentificar los objetos importantesOrganizar los objetos en jerarquíasOtorgar, a los objetos, atributos relevantes
que describan sus característicasProveer, a cada objeto, las funciones
inherentes a su comportamiento
Randy V² - II Q – 2016, 100 % positivo
![Page 17: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/17.jpg)
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
![Page 18: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/18.jpg)
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
![Page 19: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/19.jpg)
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
![Page 20: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/20.jpg)
20
Instancias-Objetos
Una Instancia es una ocurrencia de la claseAl momento de crear un objeto se produce la
instanciaciónUn Objeto es una instancia de una Clase
específica
Randy V² - II Q – 2016, 100 % positivo
![Page 21: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/21.jpg)
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
![Page 22: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/22.jpg)
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
![Page 23: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/23.jpg)
23
MétodosRepresentan todas aquellas acciones que se
pueden realizar sobre un objeto de cierta claseEn la implementación, estos métodos son
segmentos de código en la forma de funcionesLa clase Vehículo puede incluir los métodos:
Encender Acelerar Virar Frenar
Randy V² - II Q – 2016, 100 % positivo
![Page 24: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/24.jpg)
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
![Page 25: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/25.jpg)
25
ENCAPSULAMIENTOAbstracción de Datos
Randy V² - II Q – 2016, 100 % positivo
![Page 26: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/26.jpg)
26
Encapsulamiento
Proceso por el que se ocultan:Las estructuras de datosLos 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
![Page 27: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/27.jpg)
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
![Page 28: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/28.jpg)
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
![Page 29: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/29.jpg)
29
HERENCIAOrganización jerárquica
Randy V² - II Q – 2016, 100 % positivo
![Page 30: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/30.jpg)
30
HerenciaPermite 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 existenteUna clase (derivada) puede heredar de otra
clase (base): Atributos y Métodos
Randy V² - II Q – 2016, 100 % positivo
![Page 31: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/31.jpg)
31
Herencia
Em pleadoS u e ld o
ClienteC u en ta
Alum noC arre ra
PersonaN om b re
D irec c ió nR U T
Randy V² - II Q – 2016, 100 % positivo
![Page 32: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/32.jpg)
32
POLIMORFISMO
Randy V² - II Q – 2016, 100 % positivo
![Page 33: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/33.jpg)
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
![Page 34: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/34.jpg)
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
![Page 35: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/35.jpg)
35
OBJETOS'A'3
MENSAJESucesor 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
![Page 36: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/36.jpg)
36
ObjetosEn la POO se dice que un objeto: "integra datos y algoritmos"En la programación estructurada, variables y funciones están separadas
ClaseObjeto
Instanciación de objetos
TipoVariable
Declaración de variables
POO Procedural
Randy V² - II Q – 2016, 100 % positivo
![Page 37: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/37.jpg)
37
ObjetosCada objeto es responsable de inicializarse y destruirse en forma correctaUn objeto consta de:
Tiempo de vida Estado Comportamiento
Atributos
Métodos
Randy V² - II Q – 2016, 100 % positivo
![Page 38: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/38.jpg)
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 programaLos objetos son creados mediante un mecanismo denominado instanciación
Los objetos dejan de existir cuando son destruidos
Randy V² - II Q – 2016, 100 % positivo
![Page 39: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/39.jpg)
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
![Page 40: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/40.jpg)
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
![Page 41: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/41.jpg)
41
ClasesLas 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
![Page 42: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/42.jpg)
42
ClasesPermiten definir y representar colecciones de objetos
Proveen un modelo para la creación de objetos
Los elementos que componen la clase sonAtributos
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
![Page 43: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/43.jpg)
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
![Page 44: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/44.jpg)
44
Ejemplo de instancia de objetos
Clase: Cuenta corrienteInstanciación: Cuenta Corriente A, B
Objeto: A
Métodos
DepositarGirar
Consultar
Num: 1234Nombre: JuanSaldo: 350.000
Métodos
DepositarGirar
Consultar
Num: 9876Nombre: MaríaSaldo: 450.600
Objeto: B
Randy V² - II Q – 2016, 100 % positivo
![Page 45: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/45.jpg)
45
MensajeMecanismo por el cual se solicita una acción
sobre el objetoUn programa en ejecución es una colección de
objetos que se crean, interactúan y se detruyenLa 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
![Page 46: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/46.jpg)
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édico Paciente
MensajeRecepcionista
Médico Paciente
Randy V² - II Q – 2016, 100 % positivo
![Page 47: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/47.jpg)
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
![Page 48: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/48.jpg)
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
![Page 49: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/49.jpg)
RESUMEN
![Page 50: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/50.jpg)
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ónEl mensaje incluye la información (argumentos)
necesaria para satisfacer la peticiónSi el receptor acepta el mensaje, acepta la
responsabilidad de ejecutar la acción indicadaEn respuesta a un mensaje, el receptor ejecuta un
método para satisfacer la petición
Randy V² - II Q – 2016, 100 % positivo
![Page 51: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/51.jpg)
51
Clases y ejemplares Todos los objetos son ejemplares de una claseLa clase del receptor determina el método que
se activa como respuesta a un mensajeTodos los objetos de una clase usan el mismo
método en respuesta a mensajes similares
Randy V² - II Q – 2016, 100 % positivo
![Page 52: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/52.jpg)
52
Clases y métodos Los objetos son ejemplos de TAD’sUn TAD tiene dos caras: una exterior, la que ve el
usuario, y una interior, la que sólo ve el programadorEl 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
![Page 53: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/53.jpg)
53
Clases y métodos Una variable de ejemplar es una variable
interna mantenida por un ejemplarCada ejemplar tiene su propia colección de
variables de ejemplarLas variables de ejemplar sólo son modificables
por los métodos definidos en la claseUn objeto es la combinación de estado y
comportamiento
Randy V² - II Q – 2016, 100 % positivo
![Page 54: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/54.jpg)
54
Clases y métodos El estado lo determinan las variables de
ejemplarEl comportamiento lo determinan los métodosDesde el exterior, los clientes sólo pueden ver el
comportamiento de los objetosDesde el interior, los métodos proporcionan el
comportamiento apropiado mediante las modificaciones del estado
Randy V² - II Q – 2016, 100 % positivo
![Page 55: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/55.jpg)
55
Clases y métodos La interfaz describe la forma en que un objeto se
conecta con el mundoLa implementación describe cómo se logra la
responsabilidad prometida en la interfazUna clase se puede concebir como un registro con
dos variedades de campos: datos y procedimientosLos datos constituyen las variables de ejemplarLos procedimientos constituyen los métodos
Randy V² - II Q – 2016, 100 % positivo
![Page 56: Clase 2 - Programación IV - BSI1100](https://reader033.vdocuments.mx/reader033/viewer/2022051318/588381411a28ab22688b760b/html5/thumbnails/56.jpg)
Continuara…
56
[email protected]: BSI-1100, VN, TAREA ,Nombre/ETC Twitter: @RandyValverde
Randy V² - II Q – 2016, 100 % positivo