Está en la página 1de 6

REPASO

Tipos  Abstractos  de  Datos  vs    Tipos  


Compuestos  vs  Clases  
TIPOS  ABSTRACTOS  
•  Qué  es  un  TAD?    
–  Un  TAD  define  un  conjunto  de  valores  a  traves  de  
operaciones  que  puede  realizarse  sobre  ellos  
•  Qué  es  un  Epo  compuesto?  3  puntos  
–  Mecanismo  que  provee  el  leng  de  especificación  para  
definir  TADs  =>  Especificar  las  OPERACIONES  
•  Y  uso  observadores  como  mecanismo  ARTIFICIAL  para  hablar    de  
VALORES  
•  Clase:  Forma  de  programar  un  TAD  en  Java  
–  REPRESENTACION  del  TAD    
–  Operaciones    del  TAD  =>  Metodos  
–  Valores  =>  Campos/variables  de  instancia  (representación)  
Invariantes  de  TC  
•  Invariante  del  Tipo  Compuesto?    
–  Predicado  sobre  los  OBSERVADORES  
–  Habla  de  la  “consistencia”  de  los  valores  
–  Es  SIEMPRE  verdadero  
•  Problema  X  
–  Require  P  (&&  Inv)  
–  Aseguramos  Q  (&&  Inv)  
Invariante  de  representación  
•  Que  es  InvRep?  
–  Vive  en  la  implementación  (campos  de    una  clase)  
–  Condiciones  sobre  los  campos  
–  NADA  QUE  VER  CON  Tipo  Compuesto  
–  Vale  SIEMPRE?  
•  Se  puede  asumir  en  la  precondicion  de  cada  metodo  
•  Se  puede  romper  en  el  medio  
•  Hay  que  GARANTIZAR  que  valga  al  FINAL  
Predicado  de  Abstracción  
•  Abs(c:  C,  t:  T)  :  predicado  
–  Que  asumo?  Invariante  de  t  vale  (OBVIO!  Porque  
SIEMPRE  vale)  
–  Requiere  InvRep(C)    
•  Porque  queremos  mapear  un  objeto  en  un  estado  
consistente  de  C  con  uno  Epo  compuesto.  

–  Yo  implemento  un  metodo  “M”  que  es  solucion  de  un    


•  problema  M      
•  Require  algo  (en  funcion  de  obs)  
•  Asegura  algo(en  funcion  de  obs)  
–  Abs  me  dice  que  mi  implementación  que  usa  campos  
de  una  clase  C  es  solucion  de  un  problema  
especificado  con  observadores  de  un  TC  
Qué  hace  el  ABS  
•  Qué  me  conecta  la  implementación  (usando  
una  clase  “C”)  de  un  TAD  con  su  especificación  
(usando  un  Tipo  Compuesto  “T”)?  
–  Abs(c:  C,  t:  T)  y  “conecta”  observadores  con  
campos  
–  Dice  como  se  calculan  los  observadores  usando  
los  campos  

También podría gustarte