Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetos y clases
Mensajes y mtodos
Estado y atributos
Herencia y polimorfismo
Objetos y Clases
Clase: descripcin de los datos (atributos) y de las operaciones que describen el
comportamiento de un cierto conjunto de elementos homogneos.
Mensajes y mtodos
Tipos:
producen un cambio en el estado del objeto sobre el que se ejecuta el mtodo.
calculan cierto valor.
mtodos especficos para la inicializacin y finalizacin de la vida de un objeto
(constructores y destructores).
Permiten la colaboracin entre objetos.
Estado y atributos
Atributo: cada uno de los datos de una clase.
Representan las caractersticas de un objeto y son definidas en su clase.
Estado: conjunto de los valores de los atributos que tiene un objeto, por pertenecer a una
clase, en un instante dado.
Herencia y polimorfismo
Herencia: forma de estructurar tipos/clases segn su comportamiento mediante la
creacin de una jerarqua de clasificacin.
Propiedades:
Intuitivamente fcil de comprender.
Una subclase extiende las propiedades de su superclase.
Una subclase es una forma restringida de la superclase.
Un objeto de una subclase puede acceder a campos y mtodos declarados en su
superclase.
Propsitos:
Especificacin
Especializacin: las subclases pueden redefinir los mtodos.
Extensin: la subclase aade nueva funcionalidad pero no modifica ni altera lo
heredado.
Combinacin mltiple: se hereda de varias clases.
Beneficios:
Reusabilidad del Software
Mayor fiabilidad
Consistencia de interfaces
Prototipado rpido
Ocultacin de informacin
Ejemplos:
Polimorfismo: posibilidad que tienen distintos objetos de actuar de una manera diferente
(desencadenar operaciones distintas) en respuesta a un mismo mensaje (una misma
llamada a funcin).
Tipos:
Ad hoc o esttico:
o Sobrecarga
o Coercin: conversin de objetos de una clase a otra (cast)
Universal
Bases:
Herencia: se aplica a clases que hereden de otras.
Instanciacin dinmica: una referencia a un objeto A puede hacer referencia a distintos
objetos derivados de la clase.
Beneficios:
Abstraccin: no es necesario conocer toda la jerarqua de clases derivadas.
Extensibilidad: aumentar la funcionalidad del programa/sistema sin tener que modificar
el cdigo ya escrito.
Abstraccin
Encapsulacin u Ocultamiento
Modularidad
Jerarqua
Abstraccin
Proceso mental de extraccin de las caractersticas esenciales (requisitos o
funciones) de algo, ignorando los detalles superfluos.
No es posible manejar todos los aspectos de un sistema al mismo tiempo. Es
fundamentalmente subjetiva.
Punto de vista del cliente (usuario)
Encapsulacin u ocultamiento
Proceso por el que se ocultan los detalles del soporte de las caractersticas
esenciales de una abstraccin (cmo se realizan las funciones).
Punto de vista del desarrollador (sistema)
Ventajas:
Delimita el rea de bsqueda de errores
Reduce la complejidad del sistema
Facilita la modificacin del sistema
Implementacin en OO:
Un objeto slo tiene accesible su interfaz (servicios o mtodos)
Los atributos son siempre privados
Modularidad
Proceso de descomposicin de un sistema en un conjunto de piezas poco
acopladas (independientes) y altamente cohesivas (con significado propio): mdulos
Conceptos asociados:
Acoplamiento: fuerza de la dependencia entre mdulos
Cohesin: grado de conectividad entre los elementos de un mdulo
Descomposicin en OO:
Descomponer para obtener las abstracciones claves del dominio del problema
El mundo es un conjunto de objetos agrupados que colaboran
Cada objeto exhibe un comportamiento definido (no identificable, necesariamente,
con una funcin del sistema)
Jerarqua
Proceso de estructuracin por el que se produce una organizacin de un conjunto
de elementos en grados o niveles de responsabilidad, de incumbencia o de composicin
entre otros
Tipos:
Por grado de composicin o de agregacin: una abstraccin se compone de un
conjunto de elementos.
Por grados de clasificacin, clasificacin de las distintas abstracciones de la ms
general a las ms especficas
Favorece la extensibilidad: facilidad con la que los productos software pueden ser
adaptados a cambios incrementales de especificaciones.
Para aadir una nueva funcionalidad, hay que identificar qu clase la soportar. El
procedimiento ptimo es crear una subclase que define las diferencias entre la clase
existente y la nueva abstraccin. De esta forma la clase existente no resulta afectada y
no hay cdigo repetido.
RESUMEN
Introduccin a AyDOO
UML: Lenguaje de Modelado Unificado.
Es una notacin esquemtica en su mayor parte con la que se construyen sistemas
por medio de conceptos orientados a objetos.
Preguntas importantes para disear un sistema:
Qu es anlisis y diseo?
Para crear una aplicacin hay que describir el problema y los requerimientos.
El anlisis se centra en la investigacin del problema, no en la manera de definir
una solucin.
El diseo pone de relieve una solucin lgica: cmo el sistema cumple con los
requisitos. Una descripcin detallada y de alto nivel de cmo satisface a los
requerimientos y las restricciones.
Diagrama de Clases
Describen la estructura esttica de un sistema.
Clase: categora o grupo de cosas que tienen atributos (propiedades) y acciones
similares. Se representa con un rectngulo dividido en tres reas: la superior contiene el
nombre de la clase, la central contiene los atributos y la inferior las acciones.
Diagrama de clases: formado por varios rectngulos (clases) conectados por lneas
que representan las asociaciones.
Asociaciones: representan las relaciones estticas entre las clases. El nombre de la
asociacin va sobre la lnea que la representa. Una flecha rellena indica la direccin de
la relacin. Los roles (representan la manera en que dos clases se ven entre ellas) se
ubican cerca del final de una asociacin. Si es calificada, el smbolo correspondiente se
coloca al final de la asociacin.
Asociacin Tripartita
Composicin y Agregacin
Agregacin: relacin de Todo y Parte, donde el Todo juega un rol ms
importante que la Parte, pero las dos clases son dependientes una de otra. Se grafica
con un rombo diamante vaco contra la Clase Todo.
Composicin: denota una fuerte posesin del Todo, a la Parte. Se grafica con
un rombo diamante relleno contra la clase que representa el todo.
Generalizacin: herencia. Relacin entre dos clases donde una Clase Especfica
es una especializacin de la Clase General.
Diagrama de Objetos
Pueden ser vistos como una instancia de un diagrama de clases. Describen la
estructura esttica de un sistema en un momento particular y son usados para probar la
precisin de los diagramas de clases.
Cada objeto es representado como un rectngulo, que contiene el nombre del objeto
y su clase subrayadas y separadas por dos puntos. Los atributos se listan en el rea
inferior y deben tener un valor asignado.
Sistema: sus lmites se representan con un rectngulo que contiene los casos de uso.
Los actores se ubican fuera de los lmites.
Relaciones entre un actor y un caso de uso: se dibujan con una lnea simple.
Relaciones entre casos de uso: flechas etiquetadas incluir (un caso de uso es
necesitado por otro para poder cumplir una tarea) o extender (indica opciones
alternativas para un cierto caso de uso).
Diagrama de Estados
En cualquier momento, un objeto se encuentra en un estado particular. El diagrama
de estados captura esa realidad.
Estado: representa situaciones durante la vida de un objeto. Se representa con un
rectngulo con puntas redondeadas.
Estado Inicial
Estado Final
Diagrama de Secuencias
Muestra la mecnica de la interaccin los objetos entre s, con base en tiempos.
Rol de la Clase: describe la manera en que un objeto se va a comportar en el
contexto.
Diagrama de Actividades
Ilustra la naturaleza dinmica de un sistema mediante el modelado del flujo
ocurrente de actividad en actividad. Son utilizados para modelar el flujo de trabajo
interno de una operacin.
Actividad: operacin en alguna clase del sistema que resulta en un cambio en el
estado del sistema.
Estados de Accin: representan las acciones no interrumpidas de los objetos.
Flujo de la Accin: representados con flechas, ilustran las relaciones entre los
estados de accin.
Estado Inicial
Estado Final
Diagrama de Colaboraciones
Describe interacciones entre objetos en trminos de mensajes secuenciados.
Representan una combinacin de informacin tomada de los diagramas de clases, de
secuencias y de casos de uso, describiendo el comportamiento, tanto de la estructura
esttica, como de la estructura dinmica de un sistema.
Rol de la Clase: describe cmo se comporta un objeto.
Diagrama de Componentes
Diagrama de Distribucin
Muestra la arquitectura fsica de un sistema informtico. Puede representar a los
equipos y a los dispositivos, y tambin mostrar sus interconexiones y el software que se
encontrar en cada mquina.
Nodo: recurso fsico capaz de ejecutar componentes de cdigo.
Componentes y Nodos
Otras caractersticas
Paquetes
Permiten organizar los elementos de un diagrama en un grupo. Se representa por
una carpeta tabular.
Notas
Permite realizar aclaraciones de por qu un elemento del diagrama est all o la
manera en que trabaja. Tiene una esquina doblada y se adjunta al elemento del diagrama
conectndolo mediante una lnea punteada.
Estereotipos
Algunos sistemas requieren de elementos hechos a medida que no se encuentran en
el UML. Los estereotipos permiten tomar elementos propios del UML y convertirlos en
otros que se ajusten a las necesidades. Se representan como un nombre entre dos pares
de parntesis angulares.