Está en la página 1de 15

Universidad Tecnológica

Tula-Tepeji
Carrera: TIIIRD

Grupo: G1

Materia: POO

Actividad: Elementos de la POO

Profesor(a): Edith Campos Cruz

Matricula: 20301013

Alumno: Alan Obed Lugo Martinez

Fecha: 19-Ene-2020
Diagrama de clases
El diagrama de clases recoge las clases de objetos y sus
asociaciones. En este diagrama se representa la estructura y el
comportamiento de cada uno de los objetos del sistema y sus
relaciones con los demás objetos, pero no muestra información
temporal.

El objetivo principal de este modelo es la representación de los


aspectos estáticos del sistema, utilizando diversos mecanismos de
abstracción (clasificación, generalización, agregación).
Elementos de un diagrama de clases
Clases
Una clase describe un conjunto de objetos con propiedades (atributos) similares y un comportamiento común. 
Notación de una clase
•(+) Pública. Representa que se puede acceder al atributo o función desde cualquier lugar de la aplicación.
•(-) Privada. Representa que se puede acceder al atributo o función únicamente desde la misma clase.
•(#) Protegida. Representa que el atributo o función puede ser accedida únicamente desde la misma clase o desde las clases
que hereden de ella (clases derivadas).
Relaciones
Una relación identifica una dependencia. Esta dependencia puede ser
entre dos o más clases o una clase hacía sí misma .
Las relaciones se representan con una linea que une las clases, esta
línea variará dependiendo del tipo de relación

Propiedades de una relación


Multiplicidad: Es decir, el número de elementos de una clase que
participan en una relación. Se puede indicar un número, un rango…
Se utiliza n o * para identificar un número cualquiera.
Nombre de la asociación: En ocasiones se escriba una indicación
de la asociación que ayuda a entender la relación que tienen dos
clases. Suelen utilizarse verbos como por ejemplo: “Una empresa
contrata a n empleados”
Tipos de relaciones
Agregación: Se representa con un rombo hueco en la clase cuya instancia es una agregación de las instancias
de la otra.
Composición: Se representa con un rombo lleno en la clase cuya instancia contiene las instancias de la otra
clase.
Dependencia: Una línea discontinua con una flecha apuntando a la clase cliente. La relación puede tener un
estereotipo que se coloca junto a la línea, y entre el símbolo: << ... >>.
Herencia: Esta relación se representa como una línea continua con una flecha hueca en el extremo que apunta
a la superclase.
Interfaces
Una interfaz se representa como una caja con compartimentos, igual que las clases. En la zona superior se
incluye el nombre y el estereotipo <>. La lista de operaciones se coloca en la zona inferior, igual que en las
representaciones de clases. La zona en la que se listan los atributos estará́ vacía o puede omitirse
Dado que únicamente son declaraciones no pueden ser instanciadas.
Mensaje
Los mensajes son llamados a métodos de un objeto en particular,
Por convenio, el objeto que envía la petición se denomina emisor y
el objeto que recibe la petición se denomina receptor.

Compuesto por
El objeto destino, hacia el cual el mensaje es enviado
El nombre del método a llamar
Los parámetros solicitados por el método

SINTAXIS
<Variable_Objeto>.<Nombre_Método>
([<lista de Parámetros>])
Cuando el objeto receptor recibe el mensaje, comienza la ejecución del algoritmo
contenido dentro del método invocado, recibiendo y/o devolviendo los valores de los
parámetros correspondientes, si es que los tiene ya que son opcionales: ([])
Constructor
Un constructor inicializa un objeto cuando se crea. Tiene el mismo
nombre que su clase y es sintácticamente similar a un método. Sin
embargo, los constructores no tienen un tipo de devolución
explícito. Normalmente, usará un constructor para dar valores
iniciales a las variables de instancia definidas por la clase, o para
realizar cualquier otro procedimiento de inicio requerido para crear
un objeto completamente formado.
Destructor
 Un destructor, como su propio nombre implica, se utiliza para destruir objetos que han sido creados por un constructor. Al
igual que un constructor, el destructor es una función miembro cuyo nombre es el mismo que el nombre de la clase, pero
precedida por una tilde (~).
 
Por ejemplo, el destructor de la clase entero puede ser definido tal y como se muestra a continuación.
~entero(){}
Un destructor nunca tiene argumentos y no devuelve ningún valor. Será invocado de forma implícita por el compilador
cuando el programa finaliza (o el bloque o la función,dependiendo del caso) para limpiar la zona de memoria ocupada que ya
no es accesible.
Evento
Mecanismo mediante el cual una clase puede proporcionar Requisitos
notificaciones a sus clientes cuando ocurre algún suceso importante
1. Clase cuyos objetos generan el evento (publicadora).
con sus objetos.
2. Las clases cuyos objetos reciben el evento (suscriptoras).
Es generado por una clase publicadora y notificado a un conjunto de
objetos de clases clientes o suscriptoras.

Declaración de un evento
La clase publicadora debe:
Definir un delegado para dicho evento.
EventHandler
// Delegado definido por el programador
public delegate void DelegadoEventHandler(string strMensaje);
Utiliza el delegado para definir el evento
// Evento
public event DelegadoEventHandler Evento;
Sobreescritura
La Sobreescritura es la forma por la cual una clase que hereda
puede redefinir los métodos de su clase Padre, de esta manera puede
crear nuevos métodos con el mismo nombre de su superClase.
en la sobreescritura nos debemos fijar en que la estructura del método
sea igual a la de su superClase, no solo el mismo nombre sino el mismo
numero de argumentos y tipo de retorno, así como no tener un nivel de
acceso mas restrictivo que el original, tampoco se pueden sobreescribir
métodos static ni final.... (ya que static representa métodos globales y
final constantes...)
Metodos de acceso
Se utilizan para definir la visibilidad de los miembros de una clase.

Bien, en java tenemos 4 modificadores de acceso:

Private: Cuando un método o atributo (variable) es declarada como private, su uso queda restringido al interior de la misma clase, no
siendo visible para el resto. Una clase no puede ser Private, sólo atributos y métodos.

(default): Si no se le asigna ningún modificador al elemento (variable, método y clase) Java asigna uno denominado "por defecto" el
cual permite la visibilidad de los elementos(variables, métodos y clases) en clases que se encuentren en el mismo
paquete(posteriormente explicaremos los paquetes)

Protected: Un método o atributo definido como protected es visible para las clases que se encuentren en el mismo paquete y para
cualquier subclase de esta aunque este en otro paquete. Este modificador es utilizado normalmente para Herencias, así que lo
estudiaremos más a fondo cuando lleguemos a las Herencias.

Public: El modificador public ofrece la máxima visibilidad, una variable, método o clase con modificador public será visible desde
cualquier clase, aunque estén en paquetes distintos
Modularidad
La modularidad consiste en dividir un programa en módulos que puedan compilarse por separado, sin embargo tendrá conexiones con
otros módulos.

Principios

Capacidad de descomponer un sistema complejo


Recuerdas el principio de «Divide y Vencerás», en este procedimiento se realiza algo similar, ya qué descompones un sistema en
subprogramas (recuerda llamarlos módulos), el problema en general lo divides en problemas más pequeños.

Capacidad de componer a través de sus módulos


Indica la posibilidad de componer el programa desde los problemas más pequeños complentado y resolviendo el problema en general,
particularmente cuando se crea software se utilizan algunos módulos existentes para poder formar lo que nos solicitan, estos módulos
que se integran a la aplicación deben de ser diseñados para ser reusables.

Comprensión de sistema en partes


El poder tener cada parte separada nos ayuda a la comprensión del código y del sistema, también a la modificación del mismo,
recordemos que si el sistema necesita modificaciones y no hemos trabajado con módulos definitivamente eso será un caos
Composición
Es el mecanismo en el cual una clase se construye a partir de otros objetos de igual o distinto tipo, pudiéndolos combinar para
obtener la funcionalidad deseada. En la composición la nueva clase, mantiene una relación  “Usa/Tiene un” (Uses/Has a), con los
objetos que son parte de la clase.

Es decir, estamos delegando las tareas que nos mandan a hacer a aquella pieza de código que sabe hacerlas. El código que ejecuta
esa tarea concreta está sólo en esa pieza y todos delegan el ella para ejecutar dicha tarea. Por lo tanto estamos reutilizando código
de nuevo.

También podría gustarte