"AÑO DEL BUEN SERVICIO AL CIUDADANO"
ESCUELA ACADÉMICA INGENIERÍA DE SISTEMAS Y TELEMÁTICA
ASIGNATURA
LABORATORIO DE PROGRAMACIÓN I
TEMA
APLICACIONES N-CAPAS EN VISUAL NET
AUTORES
ARISTA CORONEL JORGE LUIS
RAMOS FERNANDEZ SONIA ELVIRA
DOCENTE
ING. MARCO AURELIO PORRO CHULLI
BAGUA GRANDE-UTCUBAMBA
AMAZONAS
2017
RESUMEN
La programación orientada a objetos representa a partir de los
años 90 lo que la programación estructurada fue para los 70: un nuevo e
importante paradigma para mejorar la construcción, mantenimiento y utilización
de software. Los métodos tradicionales de programación tienden a ver los
programas como un conjunto de procedimientos que se llaman unos a otros. Cada
procedimiento tiene asociados unos datos pasivos sobre los que opera.
La programación orientada a objetos cambia esta visión por otra en
la que una aplicación está compuesta por objetos con estado propio dotados de
funcionalidad. Los objetos se comunican entre sí y tienen cada uno una forma
propia de respuesta, que viene determinada por una serie de procedimientos que
son asociados a cada objeto.
El objetivo de esta tecnología es obtener un software más
consistente, robusto y reutilizable, más fácil de verificar, mantener, refinar
y extender. El paradigma orientado a objetos representa un paso más en la
dirección de acercar el lenguaje de las soluciones informáticas al lenguaje en
que se plantean los problemas.
Además de las nociones y conceptos fundamentales de la
programación orientada a objetos, en este curso se estudiará el lenguaje de
programación Java, la utilización de las técnicas orientadas a objetos en el
desarrollo de interfaces gráficas de usuario, y la tecnología de objetos
distribuidos en sistemas cliente-servidor.
SUMMARY
Object-oriented programming represents
from the 90s what structured programming was for the 70s: a new and important
paradigm for improving the construction, maintenance and use of software.
Traditional programming methods tend to view programs as a set of procedures
that call each other. Each procedure has associated passive data on which it
operates.
Object-oriented programming changes this
view to another in which an application is composed of objects with their own
state endowed with functionality. Objects communicate with one another and each
have their own form of response, which is determined by a series of procedures
that are associated with each object.
The goal of this technology is to obtain
more consistent, robust and reusable software, easier to verify, maintain,
refine and extend. The object-oriented paradigm represents a further step in
the direction of approaching the language of computer solutions to the language
in which problems arise.
In addition to the fundamental notions and
concepts of object-oriented programming, this course will study the Java
programming language, the use of object-oriented techniques in the development
of graphical user interfaces, and the technology of objects distributed in
systems Client-server.
1.
CONTENIDO
A. DEFINICION:
La programación orientada a objetos (POO, u OOP según
sus siglas en inglés) es un paradigma de programación que usa objetos en sus
interacciones, para diseñar aplicaciones y programas informáticos.
Está basada en varias técnicas, incluyendo
herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad,
existe una gran variedad de lenguajes de programación que soportan la
orientación a objetos.
El concepto de programación orientada a objetos
(OOP) no es nuevo, lenguajes clásicos como Smalltalk se basan en ella. Dado que
la OOP. Se basa en la idea natural de la existencia de un mundo lleno de
objetos y que la resolución del problema se realiza en términos de objetos, un
lenguaje se dice que está basado en objetos si soporta objetos como una
característica fundamental del mismo.
El
elemento fundamental de la OOP es, como su nombre lo indica, el objeto.
Podemos
definir un objeto como un conjunto
complejo de datos y programas que poseen estructura y forman parte de una organización.
La
OOP son un conjunto de técnicas que nos permiten incrementar enormemente
nuestro proceso de producción de software; aumentando drásticamente nuestra
productividad por un lado y permitiéndonos abordar proyectos de mucha mayor
envergadura por oto. Usando estas técnicas, nos aseguramos la re-usabilidad de
nuestro código, es decir, los objetos que hoy escribimos, si están bien escritos,
nos servirán para "siempre".
La OOP proporciona las siguientes
ventajas sobre otros lenguajes de programación:
· Uniformidad. Ya que la representación de los objetos
lleva implica tanto el análisis como el diseño y la codificación de los mismos.
· Comprensión. Tanto los datos que componen los objetos,
como los procedimientos que los manipulan, están agrupados en clases, que se
corresponden con las estructuras de información que el programa trata.
· Flexibilidad. Al tener relacionados los procedimientos
que manipulan los datos con los datos a tratar, cualquier cambio que se realice
sobre ellos quedará reflejado automáticamente en cualquier lugar donde estos
datos aparezcan.
· Estabilidad. Dado que permite un tratamiento
diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con
frecuencia permite aislar las partes del programa que permanecen inalterables
en el tiempo.
· Reusabilidad. La noción de objeto permite que programas que traten las mismas estructuras de
información reutilicen las definiciones de objetos empleadas en otros programas
e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de
un programa puede llegar a ser una simple combinación de objetos ya definidos
donde estos están relacionados de una manera particular.
MECANISMOS BÁSICOS:
OBJETO: Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa).
OBJETO: Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa).
CLASE: Una clase es una plantilla que define las
variables y los métodos que son comunes para todos los objetos de un cierto
tipo.
Una
clase, es simplemente una abstracción que hacemos de nuestra experiencia
sensible. El ser humano tiende a agrupar seres o cosas objetos con
características similares en grupos clases.
Así,
aun cuando existen por ejemplo multitud de vasos diferentes, podemos reconocer
un vaso en cuanto lo vemos, incluso aun cuando ese modelo concreto de vaso no
lo hayamos visto nunca. El concepto de vaso es una abstracción de nuestra
experiencia sensible. Quizás el ejemplo más claro para exponer esto lo tengamos
en las taxonomías; los biólogos han dividido a todo ser (vivo o inerte) sobre
la tierra en distintas clases.
Definición
teórica: La clase es
un modelo o prototipo que define las variables y métodos comunes
a todos los objetos de
cierta clase. También se
puede decir que una clase es una plantilla genérica para un conjunto de objetos de
similares características.
Por otro lado, una instancia de una clase es
otra forma de llamar a un objeto. En realidad no existe diferencia
entre un objeto y
una instancia. Sólo que el
objeto es un término más general, pero los objetos y las instancias son
ambas representación de una clase.
METODO: Una operación que realiza acceso a los datos.
Podemos definir método como un programa procedimental o procedural escrito en
cualquier lenguaje, que está asociado a un objeto determinado y cuya ejecución
sólo puede desencadenarse a través de un mensaje recibido por éste o por sus
descendientes.
Son sinónimos de 'método' todos aquellos
términos que se han aplicado tradicionalmente a los programas, como procedimiento, función,
rutina, etc. Sin embargo, es conveniente utilizar el término 'método' para que
se distingan claramente las propiedades especiales que adquiere un programa en
el entorno OOP, que afectan fundamentalmente a la forma de invocarlo
(únicamente a través de un mensaje) y a su campo de acción,
limitado a un objeto y a sus descendientes, aunque posiblemente no a todos.
Si los métodos son programas, se deduce que
podrían tener argumentos, o parámetros. Puesto que los métodos pueden heredarse
de unos objetos a otros, un objeto puede disponer de un método de dos maneras
diferentes:
· Métodos propios. Están incluidos dentro de la cápsula
del objeto.
· Métodos
heredados. Están definidos en un
objeto diferente, antepasado de éste (padre, “abuelo", etc.). A veces
estos métodos se llaman método miembro porque el objeto los posee por el mero
hecho de ser miembro de una clase.
HERENCIA: La herencia es uno de los
conceptos más cruciales en la POO (programación orientada a objetos).
La herencia básicamente consiste en que una clase puede
heredar sus variables y métodos a varias subclases (la clase que hereda es
llamada superclase o clase padre). Esto significa que
una subclase, aparte de
los atributos y métodos propios, tiene incorporados los atributos y
métodos heredados de
la superclase. De esta
manera se crea una jerarquía de
herencia.
MENSAJES: Un objeto es
inútil si está aislado. El medio empleado para que un objeto interactúe con otro son
los mensajes. Hablando en términos un poco más técnicos, los mensajes son
invocaciones a los métodos de
los objetos.
Evento: Es una acción que un
objeto reconoce, como hacer clic con el mouse (ratón) o presionar una tecla, y para
el que puede escribir código para responder. Los eventos se producen como
consecuencia de una acción del usuario o de código de programa, o bien pueden
ser desencadenados por el sistema. También puede desarrollar eventos
personalizados propios para que los generen sus objetos y los controlen otros
objetos.
Atributos: Son las características
individuales que diferencian un objeto de otro y determinan su apariencia,
estado u otras cualidades. Los atributos se guardan en variables denominadas de
instancia, y cada objeto particular puede tener valores distintos para estas
variables.
PROPIEDAD O ATRIBUTO: Contenedor de un
tipo de datos asociados a un objeto (o a una clase de objetos), que hace los
datos visibles desde fuera del objeto y esto se define como sus características
predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún
método.
ESTADO INTERNO: Es una variable que
se declara privada, que puede ser únicamente accedida y alterada por un método
del objeto, y que se utiliza para indicar distintas situaciones posibles para
el objeto (o clase de objetos). No es visible al programador que maneja una
instancia de la clase.
COMPONENTES DE UN OBJETO: Atributos,
identidad, relaciones y métodos.
IDENTIFICACIÓN DE UN OBJETO: Un objeto se
representa por medio de una tabla o entidad que esté compuesta por
sus atributos y funciones correspondientes.
En comparación con un lenguaje
imperativo, una "variable" no es más que un contenedor interno del
atributo del objeto o de un estado interno, así como la "función" es
un procedimiento interno del método del objeto.
B. CARACTERISTICAS:
Existe un
acuerdo acerca de qué características contempla la "orientación a
objetos". Las características siguientes son las más importantes:
ABSTRACCIÓN: Denota
las características esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un
"agente" abstracto que puede realizar trabajo, informar y cambiar su
estado, y "comunicarse" con otros objetos en el sistema sin revelar
"cómo" se implementan estas características. Los procesos, las
funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una
variedad de técnicas son requeridas para ampliar una abstracción. El proceso de
abstracción permite seleccionar las características relevantes dentro de un
conjunto e identificar comportamientos comunes para definir nuevos tipos de
entidades en el mundo real. La abstracción es clave en el proceso de análisis y
diseño orientado a objetos, ya que mediante ella podemos llegar a armar un
conjunto de clases que permitan modelar la realidad o el problema que se quiere
atacar.
ENCAPSULAMIENTO:
Significa reunir todos los elementos que pueden
considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
Esto permite aumentar la cohesión (diseño estructurado)
de los componentes del sistema. Algunos autores confunden este concepto con el
principio de ocultación, principalmente porque se suelen emplear conjuntamente.
POLIMORFISMO: Comportamientos diferentes,
asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos
por ese nombre se utilizará el comportamiento correspondiente al objeto que se
esté usando. O, dicho de otro modo, las referencias y las colecciones de
objetos pueden contener objetos de diferentes tipos, y la invocación de un
comportamiento en una referencia producirá el comportamiento correcto para el
tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de
ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes
proporcionan medios más estáticos (en "tiempo de compilación") de
polimorfismo, tales como las plantillas y la sobrecarga de
operadores de C++.
Sobrecarga: La sobrecarga puede ser considerada como un tipo especial de polimorfismo que casi todos los
lenguajes de OOP incluyen.
Es la capacidad de un lenguaje de programación, que permite nombrar con el mismo identificador diferentes variables u operaciones.
Es la capacidad de un lenguaje de programación, que permite nombrar con el mismo identificador diferentes variables u operaciones.
En programación orientada a objetos la sobrecarga se refiere a la posibilidad de tener dos o más funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o más funciones con el mismo nombre realizan acciones diferentes. El compilador usará una u otra dependiendo de los parámetros usados. A esto se llama también sobrecarga de funciones.
HERENCIA: Las clases no se encuentran aisladas, sino que se relacionan
entre sí, formando una jerarquía de clasificación. Los objetos heredan las
propiedades y el comportamiento de todas las clases a las que pertenecen. La
herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo
a los objetos ser definidos y creados como tipos especializados de objetos
preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener
que volver a implementarlo. Esto suele hacerse habitualmente agrupando los
objetos en clases y
estas en árboles o enrejados que reflejan un
comportamiento común. Cuando un objeto hereda de más de una clase se dice que
hay herencia múltiple;
siendo de alta complejidad técnica por lo cual suele recurrirse a la herencia
virtual para evitar la duplicación de datos.
MODULARIDAD: 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 se pueden compilar por separado, pero tienen
conexiones con otros módulos. Al igual que la encapsulación, los lenguajes
soportan la modularidad de diversas formas.
PRINCIPIO DE OCULTACIÓN: Cada objeto está aislado del exterior, es un módulo
natural, y cada tipo de objeto expone una "interfaz" a otros objetos
que específica cómo pueden interactuar con los objetos de la clase. El
aislamiento protege a las propiedades de un objeto contra su modificación por
quien no tenga derecho a acceder a ellas; solamente los propios métodos
internos del objeto pueden acceder a su estado. Esto asegura que otros objetos
no puedan cambiar el estado interno de un objeto de manera inesperada,
eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes
relajan esto, permitiendo un acceso directo a los datos internos del objeto de
una manera controlada y limitando el grado de abstracción. La aplicación entera
se reduce a un agregado o rompecabezas de objetos.
RECOLECCIÓN DE BASURA: La recolección de basura (garbage collection) es la técnica por la cual el entorno de
objetos se encarga de destruir automáticamente, y por tanto desvincular la
memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.
Esto significa que el programador no debe preocuparse por la asignación o
liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y
la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes
híbridos que se extendieron para soportar el Paradigma de Programación
Orientada a Objetos como C++ u Object Pascal, esta
característica no existe y la memoria debe desasignarse expresamente.
C. POO EN VISUAL BASIC: La programación en
Visual Basic se puede realizar de diversas formas o estilos. Este lenguaje nace
como un ambiente de prototipación rápida (RAD) para aplicaciones bajo el
sistema operativo Microsoft Windows. La orientación a objetos se incorpora como
un elemento posterior al nacimiento del lenguaje y actualmente (versión 5) no
está totalmente soportada.
A pesar de lo anterior, Visual Basic permite la
aplicación de los conceptos de orientación a objetos, aunque esto no
corresponda a un mapeo directo. Acá se presenta una técnica que permite
programar en forma estándar, basándose un modelo de clases UML. Por otra parte
los conceptos que se plantean son fácilmente aplicables a otros lenguajes de
programación visuales.
Además de cumplir con el paradigma de la orientación a
objetos, se presentan acá formas de programación que cumplen con una
arquitectura de tres capas. De esta forma, la lógica, en términos de reglas del
negocio, se aísla de los elementos de interfaz y de la forma de almacenamiento
de los objetos. Bajo este tipo de arquitectura, es posible separar físicamente
estos componentes del negocio, pudiéndose centralizar en servidores
especializados, a través del uso de monitores transaccionales como Microsoft
MTS.
ARQUITECTURA DE 3 CAPAS: El
objetivo principal de este planteamiento es separar y, por lo tanto
independizar, las reglas del negocio de las aplicaciones que las utilicen. De
esta forma, es posible utilizar las mismas reglas del negocio para diferentes
aplicaciones, corriendo sobre distintas plataformas.
· La
capa de aplicación corresponde a programas interactivos o procesos, que
realicen alguna acción sobre los componentes del negocio.
· La
capa intermedia estará formada por las clases del negocio, quienes interactúan
con el medio de almacenamiento que está representado en la capa de datos.
· Una
arquitectura pura de tres capas no permite ninguna forma de comunicación
directa entre la aplicación y la capa de datos; esto es, entre los programas de
usuario y la base de datos. Los programas de aplicación deben solicitar todos
sus requerimientos a la capa del negocio, a través de la invocación de
servicios, que corresponden a los métodos definidos para cada clase. La
separación propuesta por este modelo de capas nos da una clara guía de la forma
en que podemos enfrentar la programación de un sistema en Visual Basic.
La nueva versión, Visual Basic .NET, incorpora
características de orientación a objetos de tal manera que podría considerarse
un lenguaje totalmente diferente a sus predecesores y totalmente orientado a
objetos, ya que en versiones anteriores Visual Basic era considerado un
lenguaje de programación con sintaxis de objetos, pero no un verdadero lenguaje
orientado a objetos.
Las principales novedades que incorpora son:
ü La herencia, tan solicitada por miles de
programadores.
ü Desarrollo de programas con múltiples hilos de
ejecución.
ü Control estructurado de excepciones.
ü Inicializadores, que permiten establecer los valores
iniciales de las variables.
4. RECOMENDACIONES
En un programa orientado a
objetos tendremos a un conjunto de objetos colaborando entre
ellos. Este manual fue hecho con el propósito
de ayudar a los estudiantes universitarios que tienen el deseo de
aprender, más fuerte cada día.
Si tu aplicación demanda
algoritmos rápidos y un diseño natural lógico, a la vez de un mantenimiento de
una GUI de primera categoría, entonces el enfoque Visual Basic/COM debería ser
aplicado.
La orientación a
objetos requiere de una metodología que integre el proceso de desarrollo y
un lenguaje de modelamiento con herramientas y técnicas adecuadas.
Cualquier comentario o sugerencia me lo pueden hacer a mi correo
electrónico: soniaupa2016@gmail.com.
5. CONCLUSIONES
La
programación orientada a objetos permite la optimización del código generado
gracias a que mediante técnicas de herencia, atributos estáticos entre otros
permiten, que el código sea genérico de manera que sea reutilizable.
Mediante
las técnicas aprendidas en el presente curso podemos establecer una solución
primitiva de un problema real, tan solo con relacionarlo con objetos lógicos
que serán usados para el desarrollo del software.
Podemos
dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de
programación, a personas que deseen una explicación rápida y sencilla de lo que
es la programación orientada a objetos.
La
programación en Visual Basic se puede realizar de diversas formas o estilos.
Este lenguaje nace como un ambiente de prototipación rápida (RAD) para
aplicaciones bajo el sistema operativo Microsoft Windows.
6. APRECIACION DEL EQUIPO
Como equipo de trabajo podemos decir que una “La Programación
orientada a objetos" son
un conjunto de técnicas que nos permiten incrementar enormemente nuestro
proceso de producción de software; aumentando drásticamente nuestra
productividad por un lado y permitiéndonos abordar proyectos de mucha mayor
envergadura por otro.
7. GLOSARIO DE TERMINOS
CONCATENAR: Enlazar hechos o ideas
que suceden en serie o cadena.
ENCAPSULAMIENTO: Como un envoltorio protector alrededor del
código y los datos que se manipulan. El envoltorio define el comportamiento y
protege el código y los datos para evitar que otro código acceda a ellos de
manera arbitraria.
INSTANCIASIÓN: una instancia de un programa es una
copia de una versión ejecutable del programa que ha sido escrita en la memoria
del computador.
CASTEO: es decir convierte datos, variables o expresiones a un
nuevo tipo de dato.
CONSTRUCTOR: El constructor de una
clase es un método estándar para inicializar los objetos de esa clase. Es una
función que se ejecuta siempre al crear un objeto.
SOBRECARGO: cuando se utiliza un operador para diferentes tareas.
https://es.slideshare.net/SoniaRamosFernandez/programacin-orientada-a-objetos-75537626