miércoles, 25 de marzo de 2015

Modelado con clase/instancias

      

En la Unidad I, correspondiente a el seminario citado podemos hondear en el mundo del modelado específicamente con clases e instancia, lo cual forma parte de la programación orientada a objetos.

En el año 1967, el lenguaje de programación empleaba ciertas ideas para modelar aspectos de la realidad de forma mucho más directa que los métodos tradicionales. Desde entonces, la orientación a objetos (OO) ha adquirido cada vez mayor renombre, al exponer sus ventajas, entre las cuales:


  • Permite un modelado más “natural” de la realidad.
  • Provee la reutilización de unidades de software. 
  • Brinda mecanismos de abstracción para mantener controlable la arquitectura de sistemas complejos. 



En el mercado surgen constantemente herramientas y lenguajes de programación autodenominados orientados a objetos y los ya existentes se desenvuelven velozmente incluyendo nuevas características de OO. 


Clases y Mecanismos de Instanciación

Según Bertino y Martino (1995 p24) la instanciación significa que la misma definición se puede utilizar para generar objetos con la misma estructura y comportamiento; en otras palabras, es un mecanismo por el cual se pueden reusar las definiciones. Los modelos de datos orientados a objetos usan el concepto de clase como base para la instanciación. En este sentido, una clase es un objeto que actúa como una plantilla (template). En particular significa.
  1.  Una estructura, esto es, el conjunto de atributos de las instancias.
  2.  Un conjunto de operaciones.
  3.  Un conjunto de métodos que implementan a las operaciones.
L          La mayoría de los modelos de datos orientados a objetos restringen un objeto a ser una instancia de una sola clase. Sin embargo, un objeto puede ser miembro de varias clases por medio de una jerarquía de herencia.
c
c





Características Generales de una Clase

  • Una clase es un nivel de abstracción alto. La clase permite describir un conjunto de características comunes para los objetos que representa. Ejemplo: La clase Avión se puede utilizar para definir los atributos (tipo de avión, distancia, altura, velocidad de crucero, capacidad, país de origen, etc.) y los métodos (calcular posición en el vuelo, calcular velocidad de vuelo, estimar tiempo de llegada, despegar, aterrizar, volar, etc.) de los objetos particulares Avión que representan.
  •  Un objeto es una instancia de una clase. Cada objeto concreto dentro de un sistema es miembro de una clase específica y tiene el conjunto de atributos y métodos especificados en la misma.
  • Las clases se relacionan entre sí mediante una jerarquía. Entre las clases se establecen diferentes tipos de relaciones de herencia, en las cuales la clase hija (subclase) hereda los atributos y métodos de la clase padre (superclase), además de incorporar sus propios atributos y métodos. Ejemplos, Superclase: Clase Avión Subclases de Avión: Clase Avión Comercial, Avión de Combate, Avión de Transporte.
  • Los nombres o identificadores de las clases deben colocarse en singular (clase Animal, clase Carro, clase Alumno).

Elementos Para la Representación de Una Clase

Atributo

Según Carballo Y (2007) Los Atributos:
·      Son los datos o variables que caracterizan al objeto y cuyos valores en un momento dado indican su estado. Un atributo es una característica de un objeto. Mediante los atributos se define información oculta dentro de un objeto, la cual es manipulada solamente por los métodos definidos sobre dicho objeto
·         Un atributo consta de un nombre y un valor. Cada atributo está asociado a un tipo de dato, que puede ser simple (entero, real, lógico, carácter, string) o estructurado (arreglo, registro, archivo, lista, etc.).
                                          
      Su sintaxis algorítmica es:
<Modo_de_Acceso> <Tipo_de_dato> <Nombre_del_Atributo>;


Método

Según Carballo Y (2007) Los Métodos Son las operaciones (acciones o funciones) que se aplican sobre los objetos y que permiten crearlos, cambiar su estado o consultar el valor de sus atributos. Los métodos constituyen la secuencia de acciones que implementan las operaciones sobre los objetos. La implementación de los métodos no es visible fuera de objeto.

La sintaxis algorítmica de los métodos expresados como funciones y acciones es:

<Modo_de_Acceso> Funcion <Nombre>[(Lista Parámetros)] o <Descripción del tipo de datos>


Relación entre Clase y Objeto

Según Carballo Y (2007) Algorítmicamente las clases son descripciones netamente estáticas o plantillas que describen objetos. Su rol es definir nuevos tipos conformados por atributos y operaciones.

Por el contrario, los objetos son instancias particulares de una clase. Las clases son una especie de molde de fábrica, en base al cual son construidos los objetos. Durante la ejecución de un programa sólo existen los objetos, no las clases.


La declaración de una variable de una clase NO crea el objeto.

La asociación siguiente: (por ejemplo, Rectángulo R), no genera o no crea automáticamente un objeto Rectángulo. Sólo indica que R será una referencia o una variable de objeto de la clase Rectángulo.La creación de un objeto, debe ser indicada explícitamente por el programador, de forma análoga a como inicializamos las variables con un valor dado, sólo que para los objetos se hace a través de un método Constructor.



Migración de Instancias Entre Clase

La migración de instancias entre clases es importante. El hecho de que un objeto pueda convertirse en instancia de una clase diferente de la clase a partir de la cual se generó es muy importante para la evolución de los objetos. Más concretamente, esto significa que un objeto pueda modificar sus propias características –atributos y operaciones-, manteniendo la misma identidad (…). La desventaja principal de esto es que una aplicación debe incluir entonces código para manejar una excepción cuando se hace referencia a un objeto que sea una instancia de una clase diferente de la esperada. (Bertino, E. 1995 p.26).


¿Por qué Modelar? 

Según Guerin Brice (2005 p.349) El modelado trabaja esencialmente sobre aquello que es estable, sobre el plano funcional más que sobre el algorítmico. Es absolutamente preciso empezar por un estudio funcional formalizado con ayuda de diagramas o de un despliego de condiciones (…) El diagrama de los casos de utilizaciones UML resulta muy conveniente para realizar esta etapa de análisis, pero no es el único.




 Diagramas de Clase 

Bell D. y Parr M. (2003) Señalan que es muy común que al diseñar software se utilicen diagramas para ayudar a describir los diseños. Estos diagramas nos ayudan a pensar durante el diseño y además documentan el resultado que estos producen.
Según Autores (2015) “existen diversos lenguajes de modelados, de los cuales el Lenguaje Unificado de Modelado (UML) es el más utilizado debido a la unión de diversos diagramas que permiten el análisis de un negocio, para posteriormente proceder a la elaboración del diseño de un sistema”




Modelar Clases Mediante Diagramas UML
Para Conocer la forma en que se pueden modelar 
Diagramas de Clases es Conociendo Su Sintaxis, pues una clase se representa por medio de un rectángulo vertical dividido en 3 partes, en el primer cuadrante se identifica la clase con su respectivo nombre, en el segundo se señalan sus atributos y en el tercero los métodos que tiene la misma, para proceder a la diagramación deben conocerse los distintos tipos de relaciones entre las clases. (Autores 2015).


  •  Asociación (conexión entre clases): describe una conexión entre objetos.

Ejm:

o   Navegación: aunque las asociaciones suelen ser bidireccionales (…), en ocasiones puede ser unidireccionales.
 


o   Multiplicidad de Asociaciones: determina cuantos objetos de cada tipo intervienen en la relación.
  • Dependencia (relacion de uso): es una relación de uso entre dos entidades (una usa la otra), es cuando una clase depende de la funcionalidad que ofrece otra clase. Se representa mediante una flecha punteada o discontinua.
Ejemplo: existe un cliente que necesita de un servicio y un servidor lo provee

  • Generalización/especialización (relaciones de herencia): objetos de distintas clases pueden tener atributos similares y exhibir comportamientos parecidos (p.ej. animales, mamíferos).



No hay comentarios:

Publicar un comentario