CLASE
En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase que contiene (y se utilizó para crear) esa instancia se puede considerar como del tipo de ese objeto, por ejemplo, una instancia del objeto de la clase "Personas" sería del tipo "Personas".
Componentes
Una clase es un contenedor de uno o más datos (variables o propiedades miembro) junto a las operaciones de manipulación de dichos datos (métodos). Las clases pueden definirse como estructuras (struct), uniones (unión) o clases (class) pudiendo existir diferencias entre cada una de las definiciones según el lenguaje. Además las clases son agrupaciones de objetos que describen su comportamiento.
Las clases habitualmente se denotan con nombres abstractos como Animal, Factura... aunque también pueden representar procesos o acciones como DarAlta
OBJETO
Un objeto se define como la unidad que en tiempo de ejecución realiza las tareas de un programa. También a un nivel más básico se define como la instancia de una clase.
Estos objetos interactúan unos con otros, en contraposición a la visión tradicional en la cual un programa es una colección de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un servicio.
un objeto es el resultado de la instanciación de una clase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero ésta queda implementada sólo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano para construir sillas (una clase de nombre clase_silla), entonces una silla concreta, en la que podemos sentarnos, construida a partir de este plano, sería un objeto de clase_silla. Es posible crear (construir) múltiples objetos (sillas) utilizando la definición de la clase (plano) anterior. Los conceptos de clase yobjetos son análogos a los de tipo de datos y variable, es decir, definida una clase podemos crear objetos de esa clase, igual que disponiendo de un determinado tipo de dato (por ejemplo el tipo entero
Instancia en un lenguaje de programación visual, sería tomar o arrastrar un objeto de la barra de herramientas o de la lista de librerías y colocarlo en el escritorio o escenario de trabajo (estamos creando una instancia de ese objeto, una copia). Si arrastramos 10 botones al entorno visual de trabajo, estamos creando una instancia del botón original, si a cada botón le cambiamos el nombre, tendremos 10 botones que heredan las mismas propiedades y métodos del objeto original. Tenemos como resultado que con un solo botón hicimos 10 y nuestro archivo pesara como si tuviese uno solo.
De esta forma, partiendo de lo que conforma a un objeto original (propiedades y métodos) se reutilizan sus funciones creando una instancia del mismo en distintas partes del programa donde se necesite. Si el objeto original cambia o le es agregado algún nuevo atributo, las instancias lo heredaran puesto que son una copia del objeto original.
UML
Lenguaje Unificado de Modelado es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.
Es importante resaltar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo.
Se puede aplicar en el desarrollo de software entregando gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar.
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - MÉTODOS
Cada uno de estos componentes desempeña un papel totalmente independiente:
Las relaciones permiten que el objeto se insterte en la organización y están formadas esencialmente por punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.
Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.
REPRESENTACIÓN DE UML?
La primera fase del proyecto es la identificación de los componentes que participan en la descripción de la arquitectura de un sistema, y luego sus relaciones en las diferentes estructuras. Para cada componente y conector se determinan los elementos de UML que los representan, con su sintaxis y semántica. Algunos componentes o estructuras no tendrán una representación directa y en este caso se utilizarán los mecanismos de extensión que provee UML, como estereotipos o restricciones.
Como parte integral de cada estructura se deben incluir restricciones adicionales que determinan las relaciones y los tipos de componentes y conectores que pueden aparecer en dicha estructura. Por último en el proyecto se presentan las relaciones existentes entre las diferentes estructuras y la manera de verificar dichas relaciones, lo que ayudará a la persona que modela la arquitectura del sistema a validar la consistencia de esta última
ENCAPSULAMIENTO
Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa.
ABSTRACCIÓN
La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" (Característica de caja negra). El común denominador en la evolución de los lenguajes de programación, desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada uno de ellos hace uso.
Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de lenguajes pueden implementar los modelos abstractos. La abstracción ofrecida por los lenguajes de programación se puede dividir en dos categorías: abstracción de datos (pertenecientes a los datos) y abstracción de control (perteneciente a las estructuras de control).
RELACION
Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con aquellos que forman parte de la misma organización.
Las hay de dos tipos fundamentales:
-Relaciones jerárquicas. Son esenciales para la existencia misma de la aplicación porque la construyen. Son bidireccionales, es decir, un objeto es padre de otro cuando el primer objeto se encuentra situado inmediatamente encima del segundo en la organización en la que ambos forman parte; asimismo, si un objeto es padre de otro, el segundo es hijo del primero (en la fig. 2, B es padre de D,E y F, es decir, D,E y F son hijos de B; en la fig. 3, los objetos B y C son padres de F, que a su vez es hijo de ambos).
HERENCIA
En orientación a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la modificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.
Es la relación entre una clase general y otra clase más específica. Por ejemplo: Si declaramos una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo.
La herencia es uno de los mecanismos de la programación orientada a objetos, por medio del cual una clase se deriva de otra, llamada entonces clase base o clase padre,(a veces se le denomina superclase pero no es muy comun), de manera que extiende su funcionalidad. Una de sus funciones más importantes es la de proveer Polimorfismo y late binding.
MODULARIDAD
En programación modular, y más específicamente en programación orientada a objetos, se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
Estos módulos que se puedan compilar por separado, pero que tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la Modularidad de diversas formas.
Según Bertrand Meyer "El acto de particional un programa en componentes individuales para reducir su complejidad en algún grado. . . . A pesar de particional un programa es útil por esta razón, una justificación más poderosa para particional un programa es que crea una serie de límites bien definidos y documentados en el programa. Estos límites, o interfaces, son muy valiosos en la comprensión del programa"
POLIMORFISMO
En programación orientada a objetos el polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.
Por ejemplo, podemos crear dos clases distintas: Pez y Ave que heredan de la superclase Animal. La clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases (peces y aves se mueven de forma distinta).
Como se mencionó anteriormente, el concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. Así nacen los conceptos de funciones polimórficas y tipos polimórficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimórficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.
AGREGACIÓN
En la misma línea, la composición, es una relación más fuerte de los objetos, asi como la agregación, es el hecho de que un objeto posea a otro, la composición es cuando la relación entre ambos objetos es tal, que el agregado es una parte importante del agregador, de tal forma que el primero no tiene sentido suelto, y el segundo, necesita definir al primero para ampliar su significado.
EXTENSIÓN
En informática, la extensión de archivo es una cadena de caracteres anexadas al final de un nombre de archivos separados por un punto. Las extensiones suelen determinar el tipo de formato del archivo al que pertenecen y así poder ser reconocido por el sistema operativo o por el programa que lo ejecuta (además de poder ser reconocido los propios usuarios).
En sistemas UNIX las extensiones se utilizan como simple convención y no necesariamente para determinar el formato del archivo.
Antiguamente los sistemas DOS permitían extensiones de tres o menos caracteres y es por esto que la mayoría de las extensiones actuales tienen ese máximo de caracteres a pesar de que Windowssoporte más largas.
En sistemas UNIX las extensiones se utilizan como simple convención y no necesariamente para determinar el formato del archivo.
Antiguamente los sistemas DOS permitían extensiones de tres o menos caracteres y es por esto que la mayoría de las extensiones actuales tienen ese máximo de caracteres a pesar de que Windowssoporte más largas.
SOBRECARGA
El polimorfismo como se muestra en el ejemplo anterior, suele ser bastante ventajoso aplicado desde las interfaces, ya que permite crear nuevos tipos sin necesidad de tocar las clases ya existentes (imaginemos que deseamos añadir una clase Multiplicar), basta con recompilar todo el código que incluye los nuevos tipos añadidos. Si se hubiera recurrido a la sobrecarga durante el diseño exigiría retocar la clase anteriormente creada al añadir la nueva operación Multiplicar, lo que además podría suponer revisar todo el código donde se instancia a la clase.
4 - Partiendo de ejemplos o ejercicios pràcticos aplicar los concepto vistos en los puntos anteriores de esta actividad, para lo cual se definirà un caso y los aprendices deberan encontrar los conceptos que se pueden aplicar al mismo.
IDENTIFICACIÓN DE LOS ACTORES
Directora financiera, área contable, gerencia, junta directiva, auditor
ACTIVIDAD A REALIZAR POR PARTE DE CADA UNO DE LOS ACTORES
Directora financiera: creación y asignación de los del presupuesto de los rubros, revisar y analizar las variaciones del mismo
- Área contable: brindar la información de ejecución a la directora financiera
-Gerencia y Junta directiva: solicitar informe por parte de la directora financiera.
-Auditor: quien da el visto bueno de los datos entregados por el área contable
DIAGRAMA DE CASO DE USO
DIAGRAMA DE CASO DE USO
Acaba de salvarme la vida tu publicación :) con el ejemplo que necesitaba...
ResponderEliminar