ANALISIS DE UML











UML


UML (Unified Modeling Language)es un lenguaje estándar para especificar, visualizar, construir y documentar los artefactos de sistemas de software, así como para el modelado de negocios y otros sistemas de software.

El UML es una parte muy importante del desarrollo de software orientado a objetos y el proceso de desarrollo de software.

UML se compone básicamente de 2 componentes:


1.-EL META-MODELO
UML es único que tiene una representación de datos estándar. esta representación se llama el meta-modelo, que describe la objetos, atributos y relaciones necesarias para representar conceptos de UML dentro de una aplicación de software.


2.-LA NOTACION
Es comprometida de dos subdivisiones principales:

1.-la notación para el modelado de los elementos estáticos de un diseño, tales como clases, atributos y relaciones.



2.-la notación para el modelado de los elementos de un diseño dinámicos como objetos, mensajes, y las máquinas de estados finitos

DIAGRAMAS DE CLASES.

Los diagramas de clases son ampliamente utilizados para describir los tipos de objetos en un sistema y sus relaciones.
Describen tres perspectivas diferentes en el diseño de un sistema conceptual, la especificación, y implementación.

El elemento fundamental del diagrama de clases es un icono de representar la clase, es el siguiente



Un icono de clase es simplemente un rectángulo dividido en tres compartimentos. El compartimiento superior contiene el nombre de la clase. El de en medio contiene una lista de los atributos, y el ultimo compartimiento contiene una lista de las operaciones






LAS RELACIONES DE COMPOSICION

Son asociaciones que representan acumulaciones muy fuertes. Esto significa que las composiciones también forman relaciones completas, pero dichas relaciones son tan fuertes que las partes no pueden existir por sí mismas. Únicamente existen como parte del conjunto, y si este es destruido las partes también lo son.

En UML, las composiciones están representadas por un rombo sólido al lado del conjunto. Representación visual de una relación de composición en UML




HERENCIA
Indica que una subclase hereda los métodos y atributos especificados por una Súper Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseer las características y atributos visibles de la Súper Clase.

La relación de herencia en UML se representa por una punta de flecha triangular peculiar. Esta punta de flecha, que parece más bien una porción de pizza, apunta a la clase de base








AGREGACION


La forma débil de agregación se representa con un diamante abierto. Esta relación indica que el total de la clase (la clase con el diamante blanco tocándolo) es de alguna manera el "todo", y la otra clase en la relación es de algún modo "parte" de ese todo





ASOCIACION


La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre si
es nada más que una línea de empate entre las clases participantes






La diferencia entre agregación y asociación es la siguiente:

La agregación denota todo las relaciones entre parte mientras que las asociaciones no.





DEPENDENCIA

Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase).

Se denota por una flecha punteada.

PROGRAMACION ORIENTADA A OBJETOS



1.1RECONOCIMIENTO DE OBJETOS CLASES EN EL MUNDO REAL Y LA INTERACCION ENTRE ELLOS

Objeto.- se define como una estructura que encapsula atributos (características) y comportamientos (procedimientos) de una entidad con un papel bien definido en una aplicación.

Cada objeto tiene:

- Estado: Conjunto de valores de los atributos en un instante de tiempo dado. El comportamiento de un objeto puede modificar el estado de este.

- Comportamiento:
Relacionado con su funcionalidad y determina las operaciones que este puede realizar o a las que puede responder ante mensajes enviados por otros objetos.

-Identidad: Es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto.
Los objetos, concretos y abstractos, están a nuestro alrededor, forman nuestro entorno. Podemos distinguir cada objeto en base a sus características y comportamientos.

Por ejemplo, en un aula de clases se observan los siguientes objetos:
—• Alumno
—• Profesor
—• Mesa
—• Silla
—• Mesa banco
Pizarrón

Interacción entre objetos: Los objetos no sólo tienen atributos relacionados con su forma física sino que, además, exhiben comportamientos específicos de su clase.

—• Alumno: Estudia, aprende.
—• Profesor: Enseña, evalúa.
—• Mesa: Ordenada, desordenada.
—• Silla: Ocupada, desocupada.
—• Mesa banco: Ocupado, desocupado.
—• Pizarrón: Pintado, borrado
En el aula hay varios objetos alumno, por lo que pensamos en el grupo de alumnos, al que se denomina como la clase alumno. De igual manera, cada materia es impartida por un profesor; el conjunto de profesores forman la clase Profesor. Pudiéramos extender nuestro análisis al pizarrón, la mesa, la silla, al conjunto de mesa bancos, etc.
1.2 Abstracción y Encapsulamiento como un proceso natural
-Principio por el cual se aisla toda aquella información que nos resulta reelevante a un determinado nivel de conocimiento
-Denota las características esenciales de un objeto, donde se capturan sus comportamientos.
  • Dentro de las características esenciales se encuentran:
  • Atributos (o datos).
  • Comportamiento (métodos)
  • La abstracción es clave para diseñar un buen software.
-Ocultamiento de lso datos miembro de un objeto de manera que solo se puede acmbiar mediante las operaciones definidas para ese objeto.
-Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
-En la OO el encapsulamiento de una entidad se logra mediante la definición de una clase, que reune los datos y comportamiento en una unidad.
1.3 La POO y la complejidad del software.

La POO comparada con otros paradigmas de programación, permite manejar de mejor manera la complejidad del software. Por lo siguiente:

—-Agrupar elementos comunes (objetos) en clases.

—-La clase incluye en una unidad los atributos y los métodos.

—-Se pueden construir jerarquías de herencias de clases que hereden (reciban) lo que ya esta definido.

—-Lo anterior aumenta la modularidad. El programa esta formado por módulos o partes bien identificadas.

—-La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.

—Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita ver este tipo de programación.

La modularidad implica:

—-El programa se puede construir, probar y depurar por módulos.

—-Al agregar nueva funcionalidad, se pueden crear nuevos módulos o incluir la funcionalidad en módulos que ya existen.

—-Se facilita el localizar errores, el mantenimiento y el crecimiento del software.

La complejidad del software
Se desarrolla mediante las personas que son hábiles para lo cual necesitan recopilar información necesaria es decir dominar la problemática del sistema para lo cual se ven enfocados al tratamiento del problema y después a gestionar un proceso mediante el cual desarrollaran el software y así atraves de eso podrán llevarlo a la practica hasta que atreves del usuario pueda tener la flexibilidad de probarlo, para lo cual el software y la poo tienen varias aplicaciones en la programación formando grandes estructuras de ellas
FUENTE:
- Materia de la clase E