Análisis y Diseño de Sistemas Orientado A Objetos - Resumen
Análisis y Diseño de Sistemas Orientado A Objetos - Resumen
Análisis y Diseño de Sistemas Orientado A Objetos - Resumen
Los objetos se pueden definir como entidades; ejemplos de estos son: son clientes, artículos,
pedidos, entre otros.
Las clases son los objetos pertenecientes a un conjunto de elementos similares. En otras palabras
es la plantilla que contiene todas las propiedades y atributos de los objetos que se creen de dicha
clase en otra parte del programa.
Lo que distingue a la programación orientada a objetos (y por ende al análisis y diseño orientado
a objetos) de la programación clásica es la técnica de colocar todos los atributos y métodos de un
objeto dentro de una estructura autocontenida, la clase en sí. Cada clase debe tener un nombre que
la distinga de las demás. Por lo general, los nombres de las clases son sustantivos o frases cortas y
empiezan con mayúscula.
En el diagrama de la parte superior se puede ver como cada clase se va relacionando con otras
por medio de flechas; bueno cada fecha tiene su significado en el caso de las flechas normales
estas representan la herencia entre clases, la cual es otro concepto clave para la programación
orientada a objetos. Las clases pueden tener hijos; es decir, se puede crear una clase a partir de
otra.
CONCEPTOS Y DIAGRAMAS DEL LENGUAJE UNIFICADO DE
MODELADO (UML)
Los seis diagramas de UML que se utilizan con más frecuencia son:
3. Un diagrama de actividad, que ilustra el flujo de actividades en general. Cada caso de uso puede
crear un diagrama de actividad.
4. Los diagramas de secuencia, que muestran la secuencia de las actividades y las relaciones entre
las clases. Cada caso de uso puede crear uno o más diagramas de secuencia. El diagrama de
comunicación es la alternativa a un diagrama de secuencia, el cual contiene la misma información
pero enfatiza la comunicación en vez de la sincronización.
5. Los diagramas de clases, que muestran las clases y sus relaciones. Los diagramas de secuencia
se utilizan (junto con las tarjetas CRC) para determinar las clases. El diagrama de
generalización/especialización (gen/ spec) es un derivado del diagrama de clases.
6. Los diagramas de estados, que muestran las transiciones de estado. Cada clase puede crear un
diagrama de estados, el cual es útil para determinar los métodos de la clase.
Una flecha representa a un evento. Los eventos representan cosas que ocurren en cierto momento y lugar.
Un diamante representa una decisión (también conocida como ramificación) o una fusión. En las decisiones
hay una flecha que entra al diamante y varias que salen de él. Se puede incluir una condición de guardia,
que muestra los valores de la condición. Las fusiones muestran varios eventos que se combinan para formar un evento.
Un rectángulo largo y plano representa una barra de sincronización. Estas barras se utilizan para mostrar las
actividades paralelas, donde puede haber un evento que entre a la barra de sincronización y varios eventos que
salgan de ella, a lo cual se le denomina bifurcación. Una sincronización en la que varios eventos se fusionan en
uno solo se denomina unión. Hay dos símbolos que muestran el inicio y fin del diagrama. El estado inicial se muestra
como un círculo relleno. El estado final se muestra como un círculo negro rodeado por un círculo blanco.
Los rectángulos que rodean otros círculos se denominan carriles. Estos carriles indican particionamiento y se utilizan
para mostrar qué actividades se realizan en cada plataforma, como un navegador, servidor o computadora mainframe;
también muestran las actividades que realizan distintos grupos de usuarios. Los carriles son zonas que pueden describir
tanto la lógica como la responsabilidad de una clase.
Otro ejemplo de un diagrama de Actividad
Los carriles son útiles para mostrar cómo se debe transmitir o convertir datos, tales como los que
van del sitio Web al servidor, o del servidor a la mainframe. Por ejemplo, el diagrama de
actividad de Cambiar registro de estudiante tiene tres carriles.
Los diagramas de actividad no se utilizan para todos los casos. Debe usar diagramas de actividad
cuando:
Tipos de clases
CLASES DE ENTIDAD
Las clases de entidad representan elementos del mundo real como personas o cosas, por ejemplo.
Las clases de entidad son las entidades representadas en un diagrama de entidad-relación. Las
herramientas CASE como Visible Analyst le permiten crear una clase de entidad de UML a partir
de una entidad en un diagrama E-R. El analista necesita determinar qué atributos debe incluir en
las clases. Cada objeto tiene muchos atributos, pero la clase debe incluir sólo aquellos que la
organización utilice. Por ejemplo, al crear una clase de entidad para un estudiante en una
universidad necesitamos conocer los atributos que identifican al estudiante, como la dirección de
su hogar y del campus al que pertenece, así como el promedio de sus calificaciones, los créditos
totales, etcétera. Si tuviera que llevar el registro del mismo estudiante para una tienda de ropa en
línea, tendría que conocer la información básica de identificación además de otros atributos
descriptivos como las medidas o preferencias de color.
Las clases de límite o de interfaz proveen los medios para que los usuarios trabajen con el sistema.
Hay dos amplias categorías de clases de interfaz: humana y de sistema. Una interfaz humana puede
ser una pantalla, una ventana, un formulario Web, un cuadro de diálogo, un menú, un cuadro de
lista u otro control de visualización. También puede ser un teléfono de tonos, código de barras o
cualquier otra forma en que los usuarios puedan interactuar con el sistema. Hay que crear
prototipos de las interfaces humanas (como vimos en el capítulo 6) y a menudo se utiliza un guión
gráfico para modelar la secuencia de interacciones.
CLASES ABSTRACTAS Las clases abstractas son clases que no se pueden instanciar en forma
directa. Las clases abstractas están enlazadas a clases concretas en una relación de
generalización/especialización (gen/spec). Por lo general el nombre de una clase abstracta se
escribe en cursiva.
CLASES DE CONTROL Las clases de control o activas se utilizan para controlar el flujo de
actividades; actúan como un coordinador a la hora de implementar las clases. Para obtener clases
que se puedan reutilizar, un diagrama de clases puede incluir muchas clases de control pequeñas.
A menudo las clases de control se derivan durante el diseño del sistema.
Las capas de presentación, negocios y persistencia en los diagramas de secuencia
En el ejemplo anterior mostramos todas las clases en el mismo diagrama. Al escribir código para
sistemas es útil analizar los diagramas de secuencia como si tuvieran tres capas:
1. La capa de presentación, que representa lo que ve el usuario. Esta capa contiene las clases
de interfaz o de límite.
2. La capa de negocios, que contiene las reglas únicas para esta aplicación. Esta capa
contiene las clases de control.
Relaciones
Otra manera de mejorar los diagramas de clases es mostrar las relaciones. Éstas son conexiones
entre las clases, de manera similar a las que se encuentran en un diagrama de entidad-relación. Las
relaciones se muestran como líneas que conectan a las clases en un diagrama de clases. Hay dos
categorías de relaciones: asociaciones y relaciones entre un todo y sus partes.
ASOCIACIONES
El tipo más simple de relación es una asociación, o conexión estructural entre clases u objetos.
Las asociaciones se muestran como una simple línea en un diagrama de clases. Los puntos finales
de la línea se etiquetan con un símbolo que indica la multiplicidad, que es lo mismo que la
cardinalidad en un diagrama de entidad-relación. Un cero representa ninguno, un uno representa
uno y sólo uno; un asterisco representa muchos. La notación 0..1 representa de cero a uno y la
notación 1..* representa de uno a muchos.
GENERALIZACIÓN
Una generalización describe una relación entre un tipo general de cosa y un tipo más específico de
cosa. Este tipo de relación se describe comúnmente como una relación “es un”. Por ejemplo, un
auto es un vehículo y un camión es un vehículo. En este caso, el vehículo es la cosa general,
mientras que auto y camión son las cosas más específicas. Las relaciones de generalización se
utilizan para modelar la herencia y la especialización de las clases. A una clase general se le conoce
algunas veces como superclase, clase base o clase padre; a una clase especializada se le llama
subclase, clase derivada o clase hija.
POLIMORFISMO
El polimorfismo (que significa muchas formas) o redefinición de métodos (no es lo mismo que
sobrecarga de métodos) es la capacidad de un programa orientado a objetos de tener varias
versiones de un mismo método con el mismo nombre dentro de una relación superclase/subclase.
La subclase hereda un método padre pero le puede agregar elementos o modificarlo. La subclase
puede cambiar el tipo de los datos, o puede cambiar la forma en que trabaja el método. Por ejemplo,
podría haber un cliente que reciba un descuento adicional por volumen, con lo que se usaría un
método modificado para calcular el total del pedido. Se dice que el método de la subclase redefine
al método de la superclase. Cuando los atributos o métodos se definen más de una vez, se utiliza
el más específico (el más bajo en la jerarquía de clases). El programa compilado recorre la cadena
de clases en busca de los métodos.
CLASES ABSTRACTAS Las clases abstractas son clases generales y se utilizan cuando se
incluye la generalización/ especificación (gen/spec) en el diseño. La clase general se convierte en
la clase abstracta. La clase abstracta no tiene objetos directos o instancias de clase, y se utiliza sólo
en conjunto con clases especializadas. Por lo general las clases abstractas tienen atributos y pueden
tener unos cuantos métodos.
DIAGRAMAS DE ESTADOS
Los objetos existen en estos diversos estados, que son las condiciones de un objeto en un momento
específico. Los valores del atributo de un objeto definen el estado en que se encuentra el objeto y
algunas veces hay un atributo tal como Estado del pedido (pendiente, en recolección,
empaquetado, enviado, recibido, etcétera) que indica el estado. Un estado tiene un nombre en el
que cada palabra empieza con mayúscula. El nombre debe ser único y descriptivo. Un estado
también tiene acciones de entrada y de salida: las cosas que el objeto debe hacer cada vez que entra
o sale de un estado específico.
Ejemplo de un diagrama de estados.