Sei sulla pagina 1di 15

RESUMEN DE LOS TEMAS:

MODELADO CON UML

PRINCIPIOS TILES EN PROGRAMACIN ORIENTADA A OBJETOS

MODELADO CON UML


El modelo o modelado de objetos, describe los conceptos principales de la orientacin a objetos: las estructuras estticas y sus relaciones. Las principales estructuras estticas son los objetos y clases, los cuales estn compuestos de atributos y operaciones, mientras que las principales relaciones entre objetos y clases corresponden a las ligas y asociaciones, respetivamente.

OBJETOS Los objetos son las entidades bsicas del modelo de objeto. la palabra objeto proviene del latin objetus, donde ob significa bacia, y jacere es arrojar, o sea que tericamente un objeto es cualquier cosa que se puede arrojar. Ejemplo: Una pelota se puede arrojar, por tanto, son objetos. Por otro lado, un avin o un elefante tambin se considera objetos, aunque sea de un gran peso y difciles de arrojar. Los objetos son ms simples cosas que se pueden arrojar, son conceptos que a su vez se dividen en abstractos o concretos. Ejemplo: Una mesa es un objeto concreto, en tanto un viaje es un objeto abstracto El objeto integra una estructura de datos (atributos) y un comportamiento (operaciones).

DIAGRAMA DE OBJETOS Los objetos se describen grficamente por medio de un diagrama de objetos o diagrama de instancias. La notacin general para un objeto es una caja rectangular, que contiene el nombre del objeto subrayado, el cual sirve pata identificar al objeto, ejemplo:

IDENTIDAD Los objetos se distinguen por su propia existencia, su identidad, aunque internamente los valores para todos sus datos sean iguales, debido a que todos los objetos se consideran diferentes. Ejemplo Si tenemos una biblioteca llena de libros, cada libro, incluyendo mltiples copias, se consideran e identifican como objetos diferentes. Los objetos necesitan un identificador interno nico cuando se instrumentan o implementan en un sistema de cmputo con el fin de permitir el acceso y distinguir entre los objetos. Estos identificadores no deben incluirse como una propiedad del objeto, ya que solo son importantes en el momento de la implementacin. Ejemplo: El nmero de seguro social de la persona es un identificador externo valido, ya que existe fuera de la implementacin en una computadora.

CLASES Una clase describe un grupo de objetos con estructura y comportamiento comn. Las estructuras o propiedades de la clase se conocen como atributos y el comportamiento como operaciones. Una clase define uno o ms objetos que pertenecen a la clase y que tienen caractersticas comunes. En general, el nombre de una clase debe iniciar con una letra mayscula. Una clase se considera un molde a partir del cual se crean mltiples objetos.

DIAGRAMA DE CLASES Las clases de describen por medio del diagrama de clases. La notacin para una clase es una caja rectangular, que contiene el nombre de la clase, ejemplo:

La notacin general para el objeto se extiende mediante el nombre de la clase subrayado seguido del nombre del objeto, ejemplo:

Por lo general se utilizan ms los diagramas de clases que los diagramas de objetos, ya que los diagramas de clases son ms generales y corresponden a varios diagramas de objetos.

INSTANCIACIN El proceso de crear objetos pertenecientes a una clase se conoce como instanciacin, donde los objetos son las instancias de la clase. El objeto, es la instancia de la clase a la que pertenece. Se utiliza una flecha punteada para mostrar los objetos como instancias de las clases, ejemplo:

Se puede instanciar un nmero indefinido de objetos de cierta clase.

ATRIBUTOS Los atributos definen la estructura de una clase y de sus comportamientos objetos. El atributo define el valor de un dato para todos los objetos pertenecientes a una clase. Ejemplo: nombre, edad, y peso son atributos de la clase Persona.

Los atributos corresponden a sustantivos, y sus valores pueden ser sustantivos o adjetivos. Se puede definir un valor para cada atributo de una clase. Los valores pueden ser iguales o distintos en los diferentes objetos. No se puede dar un valor en un objeto si no existe un atributo correspondiente en la clase. Dentro de una clase, los nombres de los atributos deben ser nicos (aunque puede aparecer el mismo nombre de atributo en diferentes clases) Un atributo se conoce tambin como atributo bsico. Los atributos se listan en el diagrama de clases a continuacin el nombre de la clase, ejemplo:

La notacin para el diagrama de objetos incluye los valores de los atributos que se ubican en el centro de la caja, con letra normal, a continuacin el nombre de la clase. Existen dos notaciones alternas: La notacin extendida:

La notacin compacta

IDENTIFICADORES Los identificadores se utilizan exclusivamente por razones de implementacin. Estos identificadores internos del sistema no deben ser incluidos como atributos.

ATRIBUTOS DERIVADOS Los atributos bsicos son atributos independientes dentro del objeto. En contraste, los atributos derivados son atributos que dependen de otros atributos. Los atributos derivados dependen de otros atributos del objeto los cuales pueden ser bsicos o derivados. La notacin es una diagonal como prefijo del atributo, ejemplo:

RESTRICCIONES DE ATRIBUTOS Los valores de los atributos se pueden restringir. La notacin para una restriccin es incluir, por debajo de la clase y entre corchetes, ejemplo

OPERACIONES Las operaciones son funciones o transformaciones que se aplican a todos los objetos de una clase particular. La operacin puede ser una accin ejecutada por el objeto o sobre el objeto. Ejemplo: arrojar, atrapar, inflar y patear son operaciones para la clase pelota.

Las operaciones pueden tener argumentos, es decir, una lista de parmetros, cada uno con un tipo, y pueden tambin devolver resultados, cada uno con un tipo. Ejemplo para notacin de diagrama de clases contenido atributos y operaciones.

Notacin extendida para una clase que contiene atributos y operaciones

Consultas (query)

Son operaciones que no tienen efectos secundarios, las cuales no cambian los valores de los atributos en el objeto, es decir, es aquella operacin que no modifica el objeto. Las consultas, en general devuelven valores de atributos, bsicos o derivados y pueden o no tener argumentos. La notacin para las operaciones de consulta es la misma que para las operaciones, solo difieren en su comportamiento. Por regla general esas consultas

no se incluyen de forma explcita en el modelo de objetos, si no que se agregan durante la etapa del diseo, ya que son operaciones bastante bsicas. Accesos

Se definen operaciones de acceso para leer o escribir los atributos de un objeto. Si el acceso est hecho para leer solamente, sin afectar los valores de los atributos, entones se considera tambin una operacin de consulta. Se utiliza la notacin de punto para indicar, dentro de la operacin de acceso a un atributo: objeto.atributo, ejemplo: persona.nombre. La notacin para las operaciones de acceso es la misma, la diferencia es solo en su comportamiento. Por regla general estas operaciones de acceso no se incluyen de forma explcita en el modelo de objeto, si no que se agregan durante la etapa de diseo. Mtodos

Este trmino se utiliza para distinguir la operacin como un concepto de alto nivel de la propia implementacin de la operacin, algo correspondiente a un concepto de ms bajo nivel. Polimorfismo

Polimorfismo se define como una misma operacin que toma diferentes formas. Una operacin se considera polimrfica si esta se implementa en diferentes clases de forma distintas. Una operacin tambin se considera polimrfica si se implementa en una misma clase por diferentes mtodos, con otro nmero y tipo de argumentos. Parametrizacin

La parametrizacin de una operacin est definida por el nmero y tipo de argumentos de cada mtodo. Firmas

La firma de una operacin se define por el tipo y numero de argumentos y el tipo de resultados que devuelve. LIGAS Y ASOCIACIN La relacin entre objetos se conoce como liga. Una asociacin describe la relacin entre clases de objetos y posibles ligas, donde una liga es una instancia de una asociacin, al igual que un objeto es una instancia de una clase

IMPLEMENTACIN El mecanismo principal que se utiliza en la mayora de los lenguajes es la referencia o apuntador que permite a una entidad referirse a otra de manera primitiva. Por tal motivo la referencia o apuntador se guardara como un atributo adicional de la clase.

GRADO DE ASOCIACIN El grado de una asociacin se determina por el nmero de clases conectadas por la misma asociacin. Las asociaciones pueden ser binarias, ternarias o de mayor grado. Las asociaciones se consideran binarias si relacionan solo dos clases.

ASOCIACIONES REFLEXIVAS Las asociaciones pueden ser reflexivas y relacionan distintos objetos de una misma clase. Ejemplo Para una clase persona puede existir una asociacin pariente que describe que dos objetos de tipo persona, como Juan Prez y Laura Prez son parientes. El grado de asociacin reflexiva puede ser binario, ternario, o de mayor grado, dependiendo del nmero de objetos involucrados. Ejemplo

MULTIPLICIDAD La multiplicidad (cardinalidad) de una asociacin especifica cuantas instancias de una clase se pueden relacionar a una sola instancia de otra clase. Tipos de multiplicidad uno-uno: donde dos objetos se relacionan de forma exclusiva, uno con el otro uno-muchos: donde uno de los objetos puede estar ligado a muchos otros objetos, muchos est representado con un asterisco

muchos-muchos: donde cada objeto de cada clase puede estar ligado a muchos otros objetos.

ROL El rol describe el papel que juega cada extremo de una asociacin. Unas asociacin binaria tienen dos roles, uno en cada extremo, los cuales pueden tener un nombre diferente cada uno. Una relacin de n clases tendr n roles. Ejemplo:

Una persona asume el rol de Empleado con respecto a la Compaa, y la Compaa asume el rol de Empleador con respecto a la Persona.

RESTRICCIONES DE LIGAS Y ASOCIACIONES Las restricciones especifican una relacin particular entre las diferentes asociaciones o ligas. Como su nombre lo indica restringen los valores que estn entidades pueden asumir. Las restricciones sencillas se pueden aadir al modelo de objeto, mientras que las ms complejas deben ser especificadas en el modelo funcional. Por lo general, las restricciones se describen de forma declarativa, aunque luego deban convertirse a un procedimiento para ser implementadas.

ASOCIACIONES DERIVADAS Las asociaciones derivadas se consideran asociaciones dependientes o redundante, y estn determinadas directa o indirectamente a travs de otras asociaciones que se agregan para facilitar la bsqueda de informacin.

Ejemplo: un Profesor ensea una sola Materia a muchos Estudiantes. La relacin Estudiante estudia Materia es una asociacin derivada, ya que conociendo al Profesor, se puede deducir que Materia se les ensea a las Estudiantes.

ENSAMBLADOS: AGREGACIN Y COMPOSICIN Los ensamblados en particular la agregacin y la composicin son formas especiales de asociacin entre un todo y sus partes, en donde el ensamblado est compuesto por sus componentes. El ensamblado es el objeto central, y la estructura completa se describe como una jerarqua de contenido. Un ensamblado puede componerse de varias partes, donde cada relacin parte-todo se considera una relacin separada. Ejemplo: Una red de computadoras se puede considerar un ensamblado, donde las Computadoras son sus componentes. Este tambin es un ejemplo de agregacin, ya que las Computadoras pueden ser partes de mltiples Redes de computadoras a la vez. Adems, las computadoras pueden existir independientemente de la existencia de la Red de computadoras. Notacin en un diagrama de clases para una agregacin

Notacin en un diagrama de clases para su composicin

GENERALIZACIN Y HERENCIA La herencia es una abstraccin importante para compartir similitudes entre clases, donde todos los atributos y operaciones comunes a varias clases se pueden compartir por medio de la superclase, una clase ms general. Las clases ms refinadas se conocen como subclases.

La generalizacin define una relacin entre una clase ms generalizada y una o ms versiones refinadas de ella. Ejemplo La clase Impresora es una generalizacin de las clases Impresoras lser, de Burbuja, y de Matriz. Lo opuesto de la generalizacin es la especializacin que define una relacin entre una clase ms general y una o ms versiones especializadas de ella. Ejemplo Impresora lser, de Burbuja y de Matriz son todas especializaciones de la clase ms general Impresoras.

EXTENSIN DE CLASE La extensin de clase expresa que una subclase puede aadir nuevos atributos u operaciones a la superclase. Ejemplo La clase Rectngulo aade los nuevos atributos: Ancho y Largo:

RESTRICCIONES DE CLASE La restriccin de la clase indica como una subclase puede restringir los atributos heredados de una superclase. Una clase descendientes no pueden suprimir los atributos u operaciones de sus ancestros. Ejemplo La clase Cuadrado restringe los atributos de Rectngulo ya que Ancho debe ser igual a Largo:

MDULOS Un mdulo o paquete (package) es una construccin lgica para agrupar claves, asociaciones, y generalizaciones, el modulo captura diferentes perspectivas de un sistema.

ALGUNOS PRINCIPIOS TILES EN PROGRAMACIN ORIENTADA A OBJETOS Principio abierto-cerrado

Este principio fue establecido por Bertrand Meyer en 1998. Con este principio se intenta evitar que el cambio que se realice en un programa produzca una serie de cambio en cascada. As para poder hacer uso de este principio se deber tener ciertos requisitos para aadir nuevo cdigo al que ya se encuentra existente (abierto), pero con la condicin de no modificar el cdigo existente (cerrado). Principio de Liskov

Principio establecido por Barbara Liskov, el cual nos menciona que cualquier mtodo, funcin que se cree en una clase para su acceso debe de funcionar para cualquier clase que se derive de las mismas, pensando en su futuro uso de la clase hijas. Principio de segregacin de interfaces

Establecido por Robert C. Martin, describe que es de alguna forma mejor el tener varias clases (interfaces) para su fcil modificacin a tener una clase (interfaz) que haga referencia a una sola, de forma general. Maximizar el uso de clases inmutables

Este principio establece que al crear una clase de tipo inmutable los objetos no podrn cambiar de estado una vez que se creen. Como ejemplo se podr describir el tipo String el cual no puede ser modificado, es concreto. Preferir composicin frente a herencia

Con este principio se pretende obtener un comportamiento que se asemeje a la herencia utilizando la composicin. Principio de responsabilidad nica

Principio establecido por Robert C. Martin, indica que una clase no debe cambiar de estado, que debe permanecer completamente encapsulada, a diferencia que exista un gran motivo para que la clase cambie de estado. Eliminar duplicaciones

Principio establecido por Andy Hunt y que adems denomino DRY el cual indica que siempre que exista una duplicidad se debe eliminar de alguna forma ya sea con un mtodo nuevo o una clase tambin nueva. Principio de inversin de dependencia

Este principio establece que no deben existir mdulos de alto nivel que a su vez dependan de mdulos de bajo nivel, por lo que ambos mdulos deben depender de abstracciones. Preferir polimorfismo a los bloques if/ else o switch/ case

Establece que en ocasiones cuando algunos de los bloques ya sean de if, else, switch o case sea un tanto extensos o que los bloques sean en su totalidad por completo por estos bloques, se debe reemplazar o se debe optar por utilizar polimorfismo.

Bibliografa
Serrano, J. F. (s.f.). Tecnicas avanzadas de Diseo de Software. Mexico.

Weitzenfeld, A. (2005). Ingenieria del Software Orientada a Objetos con UML Java e Internet. Mexico: Thomson.

Potrebbero piacerti anche