Está en la página 1de 9

Diferencias entre Diagrama orientado a objetos y diagrama

estructurado

El objetivo del DE es representar la estructura modular del sistema o de un


componente del mismo y definir los parámetros de entrada y salida de
cada uno de los módulos y el DOO se enfoca en los atributos de un
conjunto de objetos y cómo esos objetos se relacionan entre sí.

Caracteristicas de la programacion orientada a objetos

En éste se manejan algunos conceptos básicos como son clases, objetos, atributos,
métodos y se caracteriza por emplear la abstracción de datos, herencia,
encapsulamiento y polimorfismo. Estas características deben ser estudiadas y
comprendidas para su aplicación en la programación orientada a objetos.

Concepto de Lenguaje unificado modelado


Es un estándar para la representación visual de objetos, estados y procesos dentro de un
sistema. Por un lado, el lenguaje de modelado puede servir de modelo para un proyecto y
garantizar así una arquitectura de información estructurada; por el otro, ayuda a los
desarrolladores a presentar la descripción del sistema de una manera que sea comprensible
para quienes están fuera del campo. UML se utiliza principalmente en el desarrollo de software
orientado a objetos.

Definicion de diagrama de clases segun UML


Para UML una clase es “una descripción de un conjunto de objetos que comparten los mismos
atributos, operaciones, métodos, relaciones, y semántica”. De esta forma, un diagrama de clase
de UML puede describir todos los componentes de una clase de una forma sencilla. Así, el
elemento fundamental de los diagramas de clase es el icono que representa una clase.

Explicar sobre los miembros de una clase como: atributos,


metodos, propiedades de visibilidad y explicarlo con un
ejemplo

Los atributos, también llamados datos o variables miembro son porciones de


información que un objeto posee o conoce de sí mismo.

Los métodos son funciones que sirven para manipular las variables o objetos
de una clase, de ahí viene la primera característica relevante de la
programación orientada a objetos que es el encapsulamiento, ya que en lo
posible se va a tratar de que solo pueda accederse a una variable de clase a
través de un método de la clase.

Ejemplo de objeto: un coche.

Se considera un coche un objeto, totalmente diferenciado del alquitrán donde


está aparcado.

Sus atributos son su color, marca, modelo, número de matrícula, número de


puertas.

Los métodos son todo aquello que nos ofrece el coche como hacer sonar una
bocina cuando tocamos el claxon (evento), llevarnos por la carretera, reducir
la velocidad al pisar el freno (evento), ...

Propiedades de visibilidad:

Explicar los siguientes conceptos y explicar un ejemplo de abstraccion,


encapsulacion, herencia, polimorfismo y modulacion

Una abstracción se enfoca en la visión externa de un objeto,


separa el comportamiento específico de un objeto, a esta división
que realiza se le conoce como la barrera de abstracción, la cuál se
consigue aplicando el principio de mínimo compromiso.

Ejemplo: de una clase persona se pueden abstraer varias


caracteristicas semejantes como lo son nombre, apellido, edad y
dirrecion sin importar si son 1 o 10 personas.

El encapsulamiento en la programación orientada a objetos es cuando limitamos el


acceso o damos un acceso restringido de una propiedad a los elementos que
necesita un miembro y no a ninguno más.

Otro ejemplo muy común de encapsulamiento son los getters y setters de las
propiedades dentro de una clase. Por defecto nos dan el valor “normal” pero
podemos modificarlos para que cambie.

private decimal _velocidadActual { get; set; }


public decimal VelocidadActual
{
get{
return _velocidadActual + 2;
}
set{
_velocidadActual = value;
}
}

En el ejemplo que acabamos de ver tenemos dos propiedades, ambas hacen


referencia a la velocidad actual, pero hay ligeras diferencias una es privada, por lo
que desde fuera de la clase no podemos acceder a su valor y la segunda es pública y
accede a la privada anteriormente mencionada. Los coches suelen marcar un par de
kilómetros por hora mas de los reales. Por lo que encapsulamos esa lógica dentro
del setter, el cual esta oculto para el consumidor que vería en su cuentaquilómetros
la velocidad con los dos kilómetros por hora extra.

La herencia permite que se puedan definir nuevas clases basadas de unas ya


existentes a fin de reutilizar el código, generando así una jerarquía de clases
dentro de una aplicación. Si una clase deriva de otra, esta hereda sus
atributos y métodos y puede añadir nuevos atributos, métodos o redefinir los
heredados.
Por ejemplo Se declaran las clases mamíferos, gato y perro, haciendo que gato y perro sean
unos mamíferos (derivados de esta clase), y se ve cómo a través de ellos se nombra al animal
pero así también se accede a patas dándole el valor por defecto para esa especie.

El polimorfismo es el mecanismo que nos permite tener un método en una clase


padre y sobrescribirlo en la clase hija. Esto quiere decir que tendremos el mismo
método en ambas clases, pero la clase hija realizara diferentes acciones. Por lo que
el polimorfismo es también denominado sobreescritura de métodos.

Un ejemplo clásico de poliformismo es el siguiente. Podemos crear dos


clases distintas: Gato y Perro, que heredan de la superclase Animal. La clase
Animal tiene el método abstracto hacersonido() que se implementa de forma
distinta en cada una de las subclases (gatos y perros suenan de forma
distinta). Entonces, un tercer objeto puede enviar el mensaje de hacer sonido
a un grupo de objetos Gato y Perro por medio de una variable de referencia de
clase Animal, haciendo así un uso polimórfico de dichos objetos respecto del
mensaje mover.

La modularidad es, en programación modular y más específicamente en programación orientada


a objetos, la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación
en sí y de las partes restantes.
La modularidad también tiene principios y son los siguientes:

1. Capacidad de descomponer un sistema complejo.


2. Capacidad de componer a través de sus módulos.
3. Comprensión de sistema en partes.

Modularidad en la vida real

Supongamos una casa que tenga electricidad, con varias tomas de


corriente en las paredes. Este sistema permite enchufar varios
dispositivos eléctricos, por ejemplo, microondas, lavadora, secadora, etc.

Estos dispositivos están diseñados para realizar su tarea específica al


enchufarse y encenderse, independientemente de la casa donde se
encuentren.

Los módulos de una aplicación deben seguir esta misma filosofía. Esto
significa que solo deben realizar su tarea específica sin importar la parte
de la aplicación donde se encuentren, o incluso a cuál aplicación estén
conectados.

Además, tal como un dispositivo eléctrico puede desenchufarse fácilmente


de la toma de corriente, un módulo debe diseñarse de tal forma que
pueda eliminarse fácilmente de una aplicación.

Así como eliminar un dispositivo eléctrico no impacta la funcionalidad de


los otros dispositivos conectados, eliminar módulos de una aplicación no
debería impactar en la funcionalidad de los otros módulos de esa
aplicación.

Tipos de asociaciones entre clases, definirlas y representarlas

Asociaciones

Las asociaciones representan las relaciones más generales entre clases, es decir,
las relaciones con menor contenido semántico. Para UML una asociación va a
describir un conjunto de vínculos entre las instancias de las clases.

Las asociaciones pueden ser binarias (conectan dos clases) o n-arias (conectan n
clases), aunque lo más normal en un modelo es utilizar sólo relaciones binarias (en
general, y sin entrar en detalles, se puede afirmar que una relación n-aria puede
modelarse mediante un conjunto finito de relaciones binarias).

La forma de representar las asociaciones binarias en UML es mediante una línea


que conecta las dos clases. En general, las asociaciones son bidireccionales, esto
es, no tienen un sentido asociado.
Composición

La composición implica que los componentes de un objeto sólo pueden pertenecer a


un solo objeto agregado, de forma que cuando el objeto agregado es destruido
todas sus partes son destruidas también.

Agregación

La agregación es una asociación con unas connotaciones semánticas más


definidas: la agregación es la relación parte-de, que presenta a una entidad como un
agregado de partes (en orientación a objeto, un objeto como agregado de otros
objetos).
Herencia

La herencia es la típica relación de generalización/especialización entre


clases. En UML la herencia se representa mediante una flecha, cuya punta
es un triángulo vacío. La flecha que representa a la herencia va orientada
desde la subclase a la superclase.

Cuando de una superclase se derivan varias subclases existen dos


notaciones diferentes, aunque totalmente equivalentes, para su
representación.

Herencia múltiple

UML permite implementar la herencia múltiple cuando una clase hereda


directamente de varias clases.

Ejemplo:

Un profesor emérito puede ser un profesor como también un


conferenciante
Diferencia entre composicion y agregacion

La agregación es un tipo de relación que comprende a las clases y sus diferentes


componentes, constituyendo un todo. La composición en cambio es un tipo de
agregación, donde cada componente solo puede pertenecer a un todo.

Como dibujar un diagrama de clases

Los diagramas de clase van de la mano con el diseño orientado a objetos. Por lo
tanto, saber lo básico de este tipo de diseño es una parte clave para poder dibujar
diagramas de clase eficaces.

Este tipo de diagramas son solicitados cuando se está describiendo la vista estática
del sistema o sus funcionalidades. Unos pequeños pasos que puedes utilizar de
guía para construir estos diagramas son los siguientes:

● Identifica los nombres de las clase


El primer paso es identificar los objetos primarios del sistema. Las
clases suelen corresponder a sustantivos dentro del dominio del
problema.
● Distingue las relaciones
El siguiente paso es determinar cómo cada una de las clases u objetos
están relacionados entre sí. Busca los puntos en común y las
abstracciones entre ellos; esto te ayudará a agruparlos al dibujar el
diagrama de clase.
● Crea la estructura
Primero, agrega los nombres de clase y vincúlalos con los conectores
apropiados, prestando especial atención a la cardinalidad o las
herencias. Deja los atributos y funciones para más tarde, una vez que
esté la estructura del diagrama resuelta.

Ejemplo diagrama de clases

También podría gustarte