viernes, 26 de febrero de 2016
jueves, 25 de febrero de 2016
1.2
LENGUAJE DE MODELADO UNIFICADO:
DIAGRAMA
DE CLASES.
LENGUAJE DE MODELADO UNIFICADO
Es el lenguaje de modelado de sistemas
de software más conocido y utilizado
en la actualidad. Es un lenguaje gráfico para visualizar, especificar,
construir y documentar un sistema. UML ofrece un estándar para describir un
"plano" del sistema (modelo), incluyendo aspectos conceptuales tales
como procesos de negocio y funciones del sistema, y aspectos concretos como
expresiones de lenguajes de programación, esquemas de bases de datos y
componentes reutilizables.
Modelado Visual
Tal como indica su nombre, UML es un lenguaje de modelado. Un modelo es una simplificación de la realidad. El objetivo del modelado de un sistema es capturar las partes esenciales del sistema. Para facilitar este modelado, se realiza una abstracción y se plasma en una notación gráfica. Esto se conoce como modelado visual.
Tal como indica su nombre, UML es un lenguaje de modelado. Un modelo es una simplificación de la realidad. El objetivo del modelado de un sistema es capturar las partes esenciales del sistema. Para facilitar este modelado, se realiza una abstracción y se plasma en una notación gráfica. Esto se conoce como modelado visual.
Muchas de las metodologías de análisis
y diseño de aplicaciones orientadas a objetos utilizan el lenguaje UML como
lenguaje de modelado.
El Lenguaje de Modelado Unificado (UML
- Unified Modeling Language) es un lenguaje que permite modelar, construir y
documentar los elementos que forman un producto de software que responde a un
enfoque orientado a objetos. Este lenguaje fue creado por un grupo de
estudiosos de la Ingeniería de Software formado por: Ivar Jacobson, Grady Booch
y James Rumbaugh en el año 1995. Desde entonces, se ha convertido en el
estándar internacional para definir organizar y visualizar los elementos que
configuran la arquitectura de una aplicación orientada a objetos. Con este
lenguaje, se pretende unificar las experiencias acumuladas sobre técnicas de
modelado e incorporar las mejores prácticas actuales en un acercamiento
estándar.
UML no es un lenguaje de programación
sino un lenguaje de propósito general para el modelado orientado a objetos y
también puede considerarse como un lenguaje de modelado visual que permite una
abstracción del sistema y sus componentes.
Entre sus objetivos fundamentales se
encuentran:
1. Ser tan simple como sea posible,
pero manteniendo la capacidad de modelar toda la gama de sistemas que se
necesita construir.
2. Necesita ser lo suficientemente
expresivo para manejar todos los conceptos que se originan en un sistema
moderno, tales como la concurrencia y distribución, así como también los
mecanismos de la ingeniería de software, como son el encapsulamiento y los
componentes.
3. Debe ser un lenguaje universal, como
cualquier lenguaje de propósito general.
4. Imponer un estándar mundial.
Un modelo UML está compuesto por tres
clases de bloques de construcción:
• Elementos: Los elementos son
abstracciones de cosas reales o ficticias (objetos, acciones, etc.)
• Relaciones: relacionan los elementos
entre sí.
• Diagramas: Son colecciones de
elementos con sus relaciones.
DIAGRAMAS UML
Un diagrama es la representación
gráfica de un conjunto de elementos con sus relaciones. En concreto, un
diagrama ofrece una vista del sistema a modelar. Para poder representar
correctamente un sistema, UML ofrece una amplia variedad de diagramas para
visualizar el sistema desde varias perspectivas. UML incluye los siguientes
diagramas:
1. Diagrama de casos de uso
2. Diagrama de clases.
3. Diagrama de objetos.
4. Diagrama de secuencia.
5. Diagrama de colaboración.
6. Diagrama de estados.
7. Diagrama de actividades.
8. Diagrama de componentes.
9. Diagrama de despliegue.
Los diagramas más interesantes y los
más usados son los de casos de uso, clases y secuencia, por lo que nos centraremos
en éstos. Pare ello, se utilizará ejemplos de un sistema de venta de entradas
de cine por Internet.
El diagrama de casos de usos representa gráficamente los casos de uso que tiene un sistema. Se define
un caso de uso como cada interacción supuesta con el sistema a desarrollar, donde
se representan los requisitos funcionales. Es decir, se está diciendo lo que
tiene que hacer un sistema y cómo. En la figura 3 se muestra un ejemplo de
casos de uso, donde se muestran tres actores (los clientes, los taquilleros y
los jefes de taquilla) y las operaciones que pueden realizar (sus roles).
El diagrama de clases muestra un conjunto
de clases, interfaces y sus relaciones. Éste es el diagrama más común a la hora
de describir el diseño de los sistemas orientados a objetos. En la figura 4 se
muestran las clases globales, sus atributos y las relaciones de una posible
solución al problema de la venta de entradas.
FUENTES BIBLIOGRÁFICAS
1.1 ELEMENTOS DEL MODELO
DE OBJETOS CLASES, OBJETOS, ABSTRACCIÓN, MODULADOR, ENCAPSULAMIENTO, HERENCIA
Y POLIMORFISMO.
CLASES
Clase a la declaración o
abstracción de un objeto cuando se programa según el paradigma de orientación a
objetos. Son los datos y operaciones
comunes a un conjunto de objetos que comparten características.
Por ejemplo, nuestro
teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en
términos de la programación orientada a objetos, podemos decir que nuestro
objeto celular es una instancia de una clase conocida como "celular".
Los celulares tienen
características (marca, modelo, sistema operativo, pantalla, teclado, etc.) y
COMPORTAMIENTOS (hacer y recibir llamadas, enviar mensajes multimedia,
transmisión de datos, etc.).
OBJETOS
Entidad compuesta de datos y
operaciones que realizan sobre esos datos. Mantienen unas características en
una o más variables e implementan su comportamiento con métodos. Es un programa
de computadora que consta de un estado y de un comportamiento, que a su vez
constan respectivamente de datos almacenados y de tareas realizables durante el
tiempo de ejecución. Un objeto puede ser creado instanciando una clase, como
ocurre en la programación orientada a objetos, o mediante escritura directa de
código y la replicación otros objetos, como ocurre en la programación basada en
prototipos.
Todo el programa está
construido en base a diferentes componentes (Objetos), cada uno tiene un rol
específico en el programa y todos los componentes pueden comunicarse entre
ellos de formas predefinidas.
Todo objeto del mundo real
tiene 2 componentes: características y comportamiento.
Por ejemplo, los automóviles
tienen características (marca, modelo, color, velocidad máxima, etc.) y
comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar
llantas, etc.).
ABSTRACCIÓN
Consiste en captar las
características esenciales de un objeto, así como sus comportamientos, es
decir, es un método por el cual obtenemos una determinada entidad de la
realidad; sus características y funciones que desempeñan, estos son
representados en clases por medios de atributos y métodos de dicha clase.
La abstracción consiste en
aislar un elemento de su contexto o del resto de los elementos que lo
acompañan. En programación, el término se refiere al énfasis en el "¿qué
hace?" más que en el "¿cómo lo hace?" (Característica de caja
negra).
Por ejemplo, volvamos al
ejemplo de los automóviles, ¿Qué características podemos abstraer de los
automóviles? O lo que es lo mismo ¿Qué características semejantes tienen todos
los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso,
llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los
automóviles podrán acelerar, frenar, retroceder, etc.
En los lenguajes de
programación orientada a objetos, el concepto de Clase es la representación y
el mecanismo por el cual se gestionan las abstracciones.
Por ejemplo:
public class Automovil {
// variables
// Métodos
}
MODULARIDAD
Es la propiedad que tiene un
sistema que ha sido descompuesto en un conjunto de módulos cohesivos y
vagamente convexos, cada módulo se puede compilar separadamente aunque tenga
conexiones con otros módulos.
En un diseño estructural,
modularizacion comprende el agrupamiento significado de subprogramas en diseño
orientado a objetos, la modularidad debe ceñirse a la estructura lógica elegida
en el proceso de diseño.
Dividir un programa en
componentes individualizados reduce en alguna manera su complejidad; C++ separa
los módulos interface de los módulos con implementación.
Mediante la modularidad, se
propone al programador dividir su aplicación en varios módulos diferentes (ya
sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un
sentido propio. Esta fragmentación disminuye el grado de dificultad del
problema al que da respuesta el programa, pues se afronta el problema como un
conjunto de problemas de menor dificultad, además de facilitar la comprensión
del programa.
ENCAPSULAMIENTO
Es el ocultamiento de
información que no es necesario saber un determinado usuario, la utilidad del
encapsulamiento va por la facilidad para manejar la complejidad, donde solo se
conoce el comportamiento pero no los detalles internos, aquí lo que interesa es
¿Qué hace la clase? Pero no el ¿Cómo lo hace?
Se denomina encapsulamiento
al ocultamiento del estado, es decir, de los datos miembros de un objeto de
manera que sólo se pueda cambiar mediante las operaciones definidas para ese
objeto.
El encapsulamiento consiste
en unir en la Clase las características y comportamientos, esto es, las
variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes
estructurados esto era imposible. Es evidente que el encapsulamiento se logra
gracias a la abstracción y el ocultamiento que veremos a continuación.
La utilidad del
encapsulamiento va por la facilidad para manejar la complejidad, ya que
tendremos a las Clases como cajas negras donde sólo se conoce el comportamiento
pero no los detalles internos, y esto es conveniente porque nos interesará será
conocer qué hace la Clase pero no será necesario saber cómo lo hace.
HERENCIA
Esto significa que una
subclase, aparte de los atributos y métodos propios, tiene incorporados los
atributos y métodos heredados de la superclase. De esta manera se crea una
jerarquía de herencia. Por ejemplo, imaginemos que estamos haciendo el análisis
de un Sistema para una tienda que vende y repara equipos celulares.
POLIMORFISMO
Se basa en utilizar varios
métodos con el mismo nombre y con diferente funcionalidad, un objeto
polimorfismo es una entidad que puede contener valores de diferentes tipos
durante la ejecución de un programa.
El polimorfismo se refiere a
la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede
ser heterogénea. El único requisito que deben cumplir los objetos que se
utilizan de manera polimórfica es saber responder al mensaje que se les envía
El polimorfismo se refiere a
la propiedad por la que es posible enviar mensajes sintácticamente iguales a
objetos de tipos distintos. El único requisito que deben cumplir los objetos
que se utilizan de manera polimórfica es saber responder al mensaje que se les
envía.
La apariencia del código
puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de
las obvias diferencias sintácticas.
Por ejemplo, en un lenguaje
de programación que cuenta con un sistema de tipos dinámico (en los que las
variables pueden contener datos de cualquier tipo u objetos de cualquier clase)
como Smalltalk no se requiere que los objetos que se utilizan de modo
polimórfico sean parte de una jerarquía de clases.
FUENTES BIBLIOGRÁFICAS
Suscribirse a:
Comentarios (Atom)







