|
|||||||
|
|
|
|||||
|
|
|||||||
Definiciones
previas
Ente y abstracción
Ente : Algo que tiene
asociada una simbología para poder describirlo.
Por ejemplo, a través
del conjunto de carácteres o palabra "Universo", es posible visualizar o tener
una idea de aquel concepto, aunque por naturaleza exista una gran diferencia
entre su verdad y realidad.
* La verdad, es lo que finalmente "creemos"
del todo que nos rodea, y la realidad "és el todo" que nos rodea.
Ejercicio
: Responderse a sí mismo : ¿Como creo yo mi
realidad y como la creen mis más cercanos? ¿Hay quién pueda describir mi
realidad y sentirla como yo la siento?
Abstracción : Se refiere a la
comprensión que se tiene de un ente, en términos de sus características y
asociaciones.
* Se puede decir que el "Universo" es un conjunto no
determinado de entes relacionados en perfecto equilibrio, o también simplemente
que un misterio no resuelto, entre infinitas descripciones posibles. Hay quienes
dibujan, hacen poesía, hacen ciencia o bien hacen bien literatura del concepto
en cuestión, lo importante es no perder de vista la diferencia entre su realidad
y nuestra verdad con respecto a él.
Ejercicio : Pensar y describir el Universo en menos 100 palabras.
Variables y
constantes
Variable
: Característica de la realidad, la cual tiene un nombre y
un valor asociado no constante.
Los valores asignados se pueden
clasificar como alfabéticos, alfanuméricos, numéricos y lógicos.
Ejemplo:
Variables alfabeticas
nombre : {"Jesus" , "Albert Eistein", "Friedrich Nietzsche", "Johann Sebastian
Bach","Enrique VIII", "Luis XIV", ... }
verbo : { "amar" , "pensar" ,
"imaginar" , "creer" , "negar" , "morir" , "existir", ...}
sustantivo : {
"Universo" , "Galaxia" , "Sistema" , "Planeta" , "Humano", ...}
punto
Cardinal : {"Este", "Oeste" , "Norte" , "Sur" , "Sureste" , "Noroeste" , ...}
sexo : {"M", "F", "Masculino", "Femenino" }
Variables alfanumericas
direccion : {"Av. Las Condes
3456 / Dept. 45-b / Las Condes / Santiago" , "Pedro Ibañez 345 / Providencia ",
... }
password : {"tp89xd , "gostx" , "atlon34ft" , "fert730fc" , ...}
email : { "MaximilianoOssa@123.cl" , "CatalinaOssandon@msn.com" ,
"FelipeMontes@hotmail.com", ...}
fecha : {"15/05/1979" , "4-2-67" , "9
de Diciembre, 2003" , "01-01-3000" , ...}
Variables numericas
tiempo : {0 , 0.0000001 , 0.003 , ... , 1000.345
, 1000.346 , ... }
anguloDiscreto = {-360 , -180 , 0 , 180 , 360}
CantidadDeVertices = { 0 , 1 , 2 , ... }
Fuerza = { ... , -14,45
, -5,983 , 0.0 , 6.905 , 256,7 , ... }
Variables lógicas (dos estados)
existe, encendido, enchufado :
{verdadero,falso}
Constante : Característica de la realidad, la cual
tiene un nombre y un valor asociado no variable.
Ejemplo:
Velocidad de la luz : 2,9979 * 10^8 m/s
Masa del
electrón : 9,1096 * 10^-31 kg
Carga del electrón : 1,6022 * 10^-19 C
Constante de Planck : 6,6262 * 10^-34 J*s
PI : 3.141593
Variables estructuradas
Son aquellas que dependen o se componen de otras
variables.
Ejemplo :
Punto (x,y,z) --> { (3,6,10) , (5,3,0) ,
(0,0,0) , ... }
Número Complejo (Parte Real, Parte Imaginaria) --> {
(0,0) , (0.5 , 0.7) , (8, -4.3) , (-10 , 0.9) }
Característica funcional
* Describe lo que hace el objeto o las
acciones que puede realizar.
Ejemplo:
ente
características funcionales
globo
aeroestático
ascender , descender , avanzar , calentarse
radio
encender , apagar , sintonizar
pelota
inflar , desinflar , obtener presion, patear , dominar
programa
computacional escribir , compilar , ejecutar
, guardar , borrar
objeto
crear, eliminar , clonar
Objetos
Objeto : Abstracción acotada de un ente en base a sus
características, en función de un propósito claro y un punto de vista definido.
* Es dintinto conceptualizar a un ente desde un punto de vista físico,
químico o comercial, ya que cada punto de vista pone el énfasis en distintas
carácteristicas asociadas con el ámbito correspondiente.
Ejemplo : Ente : Calculadora gráfica programable |
Caracteristicas de
ámbito comercial : codigo , marca , stock , ubicación ,
precio de costo, precio de lista , rebajar precio de lista , cambiar
de ubicación , aumentar stock , vender , comprar , etc.
Características de ámbito funcional: número de teclas , cantidad de memoria , encender
, apagar , graficar , operar, transmitir datos , programar ,
liberar memoria, etc.
Ejercicio : Analizar las características del
objeto Video grabador bajo los puntos de vista funcional y de desecho. No
olvidar que después de un tiempo, se deja de usar el aparato y hay que buscarle
un destino (reciclaje, guardarlo en bodega, botarlo...).
Descomposición
de un objeto
Junto con mantener sus
características propias, un objeto se puede descomponmer en un conjunto de
objetos funcionales, según sea el propósito de tal abstracción.
Por ejemplo
para diseñar un auto virtual, se necesita empezar a descomponer el objeto
padre en objetos hijos como el motor, ruedas, volante, asientos, etc. A su
vez el objeto motor se puede descomponer en los objetos batería, tanque de
gasolina, bugías entre otros.
Auto = Motor + Ruedas + Volante + Asientos
+ Acelerador + Freno + Caja de cambios + ...
Motor = Batería + Tanque de
gasolina + Bugías + ...
La descomposición podría llegar en este caso
hasta el objeto tornillo o cable, según sea la profundización y detalle del diseño.
Ejercicio :
Descomponer los siguientes objetos : Universo, Planeta Tierra ,
Casa.
Notación preliminar para describir los objetos
Las caracteristicas funcionales deberán cumplir con las siguentes restricciones
de descripción :
* Incluir como dos últimos
carácteres a los símbolos ()
Ejemplo : encender() , apagar() , ascender() , ...
* No dejar espacios
si el nombre de la característica es compuesto.
Para esto existen las
siguientes soluciones.
a) Las palabras siguientes deben comenzar con
mayúscula
b) Usar el separador _
forma
incorrecta
forma correcta
subir
volumen()
subirVolumen() , subir_volumen()
obtener
presion()
obtenerPresion() , obtener_presion()
* No pueden contener acentos
forma
incorrecta
forma correcta
obtenerPresión() obtenerPresion()
asignar_número()
asignar_numero()
* Empezar el nombre con minúscula
forma
incorrecta
forma correcta
Vender()
vender()
AumentarStock() aumentarStock()
Las características no
funcionales o bien llamados atributos , siguen las mismas
restricciones (preliminarmente), pero no llevan los símbolos ().
Ejemplo : velocidad , x , a ,
presion , primerNombre , numeroDeVentanas , ...
Clases y Herencia
En este punto de definición, se incluye los siguientes
conceptos de formalización :
* A las características propias se les
llamará atributos y a las características funcionales se les
llamará métodos.
Clase
Con respecto a la
formalización del concepto Clase, ésta es una definición formal de un
conjunto de atributos y métodos asociados a la abstracción de
un ente.
Ejemplo
Ejercicio : Definir
con el esquema anterior, a la clase Auto desde un punto de vista
funcional.
Herencia
La herencia es una metodología de clases, para
que una clase hija pueda heredar las características (propiedades
y métodos) de su clase padre.
Ejemplo
:
Pondremos nuestra atención sobre la abstracción funcional del objeto
Guitarra.
Todas las guitarras, ya sean Eléctricas, ElectroAcústicas
o normales, cumplen con características similares como número de cuerdas
(6) , método de afinación, cambio de tono, cambio de postura y rasgueo entre
otras.
Si no se siguiera con una metodología de herencia, por cada clase
(Guitarra Electrica y ElectroAcústica) se tendría que repetir la definición de
todos los atributos y métodos que pertenecen a la clase padre Guitarra, que
corresponde a la abstracción más amplia
del concepto "Guitarra".
Modelo Independiente sin
herencia
Clase
: Guitarra
-
afinar()
* numeroDeCuerdas
-
pulsarCuerda() *
tono
- rasguear()
- cambiarTono()
- cambiarPostura()
Clase
: GuitarraElectrica
-
afinar()
* numeroDeCuerdas
-
pulsarCuerda() *
tono
- rasguear()
* numeroDeCapsulas
- cambiarTono()
* volumen
-
microAfinar() *
bajo
-
conectarCable() *
agudo
-
amplificar()
Clase
: GuitarraElectroAcustica
-
afinar()
* numeroDeCuerdas
-
pulsarCuerda() *
tono
- rasguear()
* nivelDeVolumen
- cambiarTono()
-
conectarCable()
- amplificar()
Mediante el uso de la herencia, se
puede definir una clase "Guitarra" que cumpla con todas las características
generales del concepto guitarra y sus evoluciones, con el fin de acotar el
número de especificaciones de las clases "GuitarraElectrica" y
"ElectroAcústica", y permitir la herencia a éstas últimas clases con
las características del objeto padre.
Modelo dependiente con herencia
Ejercicio resuelto
Modelar usando
herencia y determinar clase padre, con las siguientes clases
:
* Ser
Humano
* Ser
Animal
* Ser Vegetal
* usar abstracción a libre
elección.
Solución :