martes, 9 de septiembre de 2008

Metodología para identificar los objetos y clases

Referencias:
Facultad de Ciencias Exactas y Naturales y Agrimensura (Corrientes – Argentina)


Metodología para identificar los objetos y clases
El Modelo de Objetos.
Introducción.
Modelo de Objetos: captura la estructura estática del sistema, mostrando:
objetos
relaciones entre objetos
atributos
operaciones
Es el más importante, puesto que el sistema se construye alrededor de los objetos.
Conceptos, notación y ejemplos.
Objetos y clases.
Objeto:
Concepto, abstracción o cosa con fronteras definidas y significado para nuestro problema.
Permite una mejor comprensión del mundo y proporciona la base para una implementación sobre el ordenador.
No existe una representación exacta.
Todos los objetos tienen una identidad y son distinguibles.
Clase:
Describe grupos de objetos con propiedades (atributos) similares, comportamiento (operaciones) comunes, relaciones con otros objetos y semántica común.
Cada objeto sabe cuál es su clase, ya que es una instancia de la misma.
Elemento esencial para la abstracción y generalización.
Modelo de Objetos.
El Modelo de Objetos utiliza un Diagrama de Configuración de Clases (DCC) para definir y mostrar la estructura y comportamiento de todas las clases identificadas en el dominio del problema, así como sus relaciones. El DCC es un modelo semántico extendido.
Una clase se representa gráficamente como una caja dividida en tres áreas:
Cabecera: contiene la declaración del nombre de la clase.
Parte Estática: contiene la definición de los atributos que representan el estado de los objetos de la clase. Los atributos podrán ser constantes, variables y derivados. Aquellos atributos utilizados para identificar objetos se subrayan.
Parte Dinámica: contiene la declaración de los servicios de la clase. Cada servicio se declara especificando su nombre y argumentos (con sus tipos respectivos). Se distinguirá (gráficamente) entre los eventos de creación, borrado y los eventos compartidos con otras clases.
Ejemplo de Clase.

Las acciones son servicios que un objeto puede activar (actuando como agente) para consultar o modificar el estado de otro objeto.
Las relaciones estructurales que podemos modelar son la agregación (parte-de) y la herencia (es- un).
Se presenta la relación de Agregación entre clases, incluyendo información sobre cardinalidades (mínimas y máximas) que determinan cuántos objetos componentes forman parte de un objeto compuesto e inversamente, cuántos objetos compuestos pueden estar compuestos de un objeto en particular.
Ejemplo de Agregación.



Diagrama de objetos.
Notación gráfica para modelar los objetos, clases y sus relaciones.
Dos clase de diagramas:
de clases
de objetos (instancias)
Diagrama de clases: esquema, patrón o plantilla para describir muchos casos posibles de datos. Describe clases de objetos.
Diagrama de objetos: describe cómo se relacionan un grupo particular de objetos entre sí.
Notación de clases y objetos.
Modelo De Datos Vs Modelo De Objetos.
Una BD se desarrolla mediante un Modelo de Datos.
1) Se construye el Modelo de Datos sobre el dominio de la aplicación.
2) Se transforma del Modelo de Datos en un Diseño de la BD mediante la aplicación de una serie de transformaciones estándar (normalización).
Un Sistema de Objetos se construye modelando mediante técnicas diferentes, pues las técnicas del Modelo de Datos son bastante limitadas para soportar el Modelo de
Objetos.
Consejos prácticos.
No comenzar construyendo diagramas de clases; primero, es necesario comprender el problema.
Intentar mantener el Modelo sencillo.
Seleccionar con cuidado los nombres.
No introducir punteros o referencias a otros objetos como atributos.
Intentar evitar asociaciones n- arias.
No intentar establecer el grado de multiplicidad perfecto al principio.
No introducir atributos de enlace dentro de la clase.
Utilizar asociaciones cualificadas donde sea posible.
Intentar evitar generalizaciones profundamente anidadas.
Intentar asociaciones uno a uno.
No se sorprenda si su modelo requiere una revisión.
Documentar siempre los Modelos de Objetos.

martes, 2 de septiembre de 2008

Referencias:
Departamento de informática de la Universidad de san Luis de Argentina
Ciberaula java
MSDN de Microsoft
Blog de javaprogramacion

Abstracción y ocultamiento de información
Un lenguaje de programación provee una serie de abstracciones (sus características) y medios para que el programador defina las suyas:
Subprogramas
Definiciones de tipos, clases y paquetes
Ocultamiento de información: principio central en el diseño de abstracciones detenidas por el programador: "ocultar tanta información como sea posible, a los usuarios de una abstracción".
Ejemplo: la función raíz cuadrada es una operación abstracta útil (no necesito conocer la representación de los números ni el algoritmo para realizar el cálculo).
Un tipo de dato detenido por el programador es una abstracción útil si puede ser usada sin conocimiento de la representación de los objetos de este tipo, ni de los algoritmos usados por sus operaciones.
Encapsulamiento
A diferencia del ocultamiento de la información, en este caso, el usuario de la abstracción:
No necesita conocer la información oculta para poder usarla.
No puede manipular directamente la información oculta (aunque lo desee)
Principal ventaja del encapsulamiento: permite reducir el impacto de la modificación de los programas.

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.
Sin encapsulamiento no puede haber Ocultamiento de Información. Debido al encapsulamiento, los datos y la implementación de las operaciones se ocultan al usuario. Teniendo los datos miembros y sus operaciones encapsuladas, el usuario sólo necesita saber cómo acceder a las operaciones. La implementación está contenida en la definición de la entidad Círculo y así está escondida.
El concepto de ocultamiento se fue mezclando con encapsulamiento y abstracción, tras algunos avatares de avance y retroceso. Los arquitectos más escrupulosos distinguen entre encapsulamiento y ocultamiento, considerando a aquél como una capacidad de los lenguajes de programación y a éste como un principio más general de diseño.

martes, 26 de agosto de 2008

Atributos y Operaciones

Referencias:
Universidad Santiago de Compostela
Documentación de Visual Studio 2005 MSDN
Willydev.net
Javahispano.org













Atributos: es un valor de un dato que esta almacenado en los objetos de una clase. Los atributos deberán ser valores puros de datos y no objetos, ya que, a diferencia de los objetos los valores puros no poseen identidad.



Operaciones y métodos:
Una operación es una función o transformación que se puede aplicar o que puede ser aplicada por los objetos de una clase. Todos los objetos de una clase comparten las mismas operaciones, y una misma operación puede aplicarse a muchas clases distintas.
Un método es la implementación de una operación para una clase. EJ. La clase archivo puede tener una operación llamada imprimir, se podrán implementar distintos métodos para imprimir diferentes archivos

Especificación de Atributos
Para desarrollar un conjunto de atributos el analista puede estudiar la narrativa de proceso para el problema y seleccionar aquellos elementos que razonablemente pertenecen al objeto. Para cada objeto responderse la siguiente pregunta: ¿Qué elementos definen completamente el objeto en el contexto del problema actual?
Definición de Operaciones
Las operaciones definen el comportamiento de un objeto y cambian, de alguna manera, los atributos de dicho objeto. Más correctamente, una operación cambia valores de uno o más atributos contenidos en el objeto.
Aunque existen muchos tipos diferentes de operaciones, estas pueden clasificarse en tres grandes categorías:
1) Operaciones que manipulan, de alguna manera, datos, 2) operaciones que realizan algún calculo y
3) operaciones que motorizan un objeto frente a la ocurrencia de un suceso de control.
Limitación:
Una de las desventajas de la programación orientada a objetos es que cuando se heredan clases a partir de clases existentes se heredan de forma implícita todos los miembros de dicha clase aun cuando no todos se necesiten, lo que produce aplicaciones muy grandes que no siempre encajan en los sistemas con los que se disponga.

Relaciones entre clases y objetos
Todo objeto es el ejemplo de una clase, y toda clase tiene 0 ó más objetos.
Mientras las clases son estáticas, con semántica, relaciones y existencia fijas previamente a la ejecución de un programa, los objetos se crean y destruyen rápidamente durante la actividad de una aplicación.
El diseño de clases y objetos es un proceso incremental e iterativo. Debe asegurar la optimización en los parámetros:
Para comprender la relación entre un objeto y su clase, piense en los moldes de hacer galletas y en las galletas. El molde es la clase. Define las características de cada galleta, por ejemplo, el tamaño y la forma. La clase se utiliza para crear objetos. Los objetos son las galletas.