fundamentos de programacion
fundamentos de programacion
 

 
bienvenidos
comunidad trovao
ciencia y tecnologia
fundamentos de programacion
reportes de practicas fundamento de programacion

Carnaval Veracruz 2007
cuentos chuscos
Enlaces
UNIDAD1

1.1-RECONOCIMIENTO DE OBJETOS Y CLASES EN EL MUNDO REAL Y LA INTERACCION ENTRE ELLOS

¿Qué es un objeto?
Objeto es el concepto clave de la Programación Orientada a Objetos, la idea de objeto es similar a la del mundo real, un objeto puede ser una silla, una mesa. Los objetos tienen dos características: Un estado y un comportamiento. Entonces podemos definir a un objeto en POO, como un conjunto de datos y funciones relacionadas.` Un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. Los datos se denominan miembros dato y las funciones métodos o funciones miembro.
Los datos y las funciones se encapsulan en una única entidad. Los datos están ocultos y sólo mediante las funciones miembro es posible acceder a ellos. Los objetos soportan una serie de características específicas de los mismos:
• Se agrupan en grupos denominados clases
• Contienen datos internos que definen su estado actual.
• Soportan ocultamiento de datos.
• Pueden heredar propiedades de otros objetos.
• Pueden comunicarse con otros objetos enviando o pasando mensajes.
• Tienen métodos que definen su comportamiento

¿Qué es una clase?
Una clase es algo abstracto que define la "forma" del objeto, se podría hablar de la clase como el molde de los objetos.
Una clase es un tipo definido por el usuario que determina las estructuras de datos y las operaciones asociadas con ese tipo. Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase. En general, los términos objetos e instancias de una clase se pueden utilizar indistintamente. La comunicación con el objeto se realiza a través del paso de mensajes. El envío a una instancia de una clase produce la ejecución de un método o función miembro. El paso de mensajes es el término utilizado para referirnos a la invocación o llamada de una función miembro de un objeto.

1.2-LA ABSTRACCION Y EL ENCAPSULAMIENTO COMO UN PROCESO NATURAL

ABSTRACCION:
La abstracción se puede definir como la capacidad de examinar algo sin preocuparse de los detalles internos. En un programa estructurado es suficiente conocer que un procedimiento dado realiza una tarea específica. El cómo se realiza la tarea no es importante; mientras el procedimiento sea fiable se puede utilizar sin tener que conocer cómo funciona su interior. Esto se conoce como abstracción funcional.

ENCAPSULAMIENTO.
El encapsulamiento es una propiedad de los programas orientados a objetos que nos permite crear componentes reutilizables para uno o varios dominios de problema

1.3-LA POO Y LA COMPLEJIDAD DEL SOFTWARE

¿QUE ES LA OPP?
es más una forma de diseño y la metodología de desarrollo de software que un lenguaje de programación.
la poo presenta las siguientes ventajas sobre otros modelos de programación:

uniformidad: ya que la representación de los objetos lleva implícita tanto el análisis como el diseño y la codificación de los mismos.

comprensión: los datos que componen los objetos, como los procedimientos que los manipulan, están agrupados en clases, que se corresponden como las estructuras de información que el programa trata.
flexibilidad: las relaciones entre los procedimientos que manipulan los datos cualquier cambio se ve reflejado automáticamente en cualquier lugar donde estos datos aparezcan.

estabilidad: dado que permiten un tratamiento diferenciado de aquellos objetos permanecen constantes en el tiempo sobre aquellos que tratan con frecuencia, permite aislar las partes del programa que permanecen inalterables en el tiempo.
reusabilidad: los programas que posean las mismas estructuras de información reutilizan las definiciones de objetos empleados en otros programas e incluso los procedimientos que los manipulan.

COMPLEJIDAD DEL SOFTWARE:
Deriva de 4 elementos:
-Complejidad del dominio del problema
-Complejidad de gestión
-Complejidad Inherente a la flexibilidad
-Complejidad de caracterización del comportamiento

1.4-CONCEPTOS DEL CICLO DE VIDA DEL SOFTWARE:

ESPECIFICACIONES:
Por medio de esta etapa se obtendrá un nuevo documento que definirá con más precisión el sistema requerido por el cliente.

ANALISIS:
Es necesario determinar que elementos intervienen en el sistema a desarrollar, así como su estructura, relaciones, evolución en el tiempo, detalle de sus funcionalidades, ... que van a dar una descripción clara de qué sistema vamos a construir, qué funcionalidades va a aportar y qué comportamiento va a tener.

DISEÑO:
ahora tenemos que determinar como va a hacerlo (¿cómo debe ser construido el sistema?; aquí se definirán en detalle entidades y relaciones de las bases de datos, se pasará de casos de uso esenciales a su definición como casos expandidos reales, se seleccionará el lenguaje más adecuado, el Sistema Gestor de Bases de Datos a utilizar en su caso, librerías, configuraciones hardware, redes, etc.).
CONCEPTOS Y CARACTERISTICAS DE LA POO:
Clase: es algo abstracto que define la "forma" del objeto, se podría hablar de la clase como el molde de los objetos. Los objetos son instancias de clases.
Abstracción: denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de objetos.
Encapsulamiento: es el proceso de compartimentar los elementos de una abstracción que constituye su estructura y comportamiento.
Complejidad: la tarea del equipo de desarrollo de SW es la de crear una ilusión de una jerarquía.
La herencia: Es un mecanismo que hace posible que una clase herede todo el comportamiento y los atributos de otra clase.

Modularidad: Un modulo es una agrupación de abstracciones lógicamente relacionadas. La interfaz de un módulo es la descripción de los servicios que ofrece a otros módulos.

Jerarquía: Permite organizar y ordenar las abstracciones. Hay dos tipos: por estructura y por especialización.

Tipo: Caracterización precisa de propiedades sobre la estructura y el comportamiento de una colección de unidades. Está asociado íntimamente con las clases. Va a indicarnos cual es el ambiente que va a englobar al modulo.

Persistencia: Propiedad de un objeto de poder quedar vigente en el tiempo y el espacio (independiente de 00). Indicara que tiempo el objeto permanecerá vigente.

Concurrencia: Que simultáneamente se pueden llevar múltiples procesos.

Paradigma: de programación es una colección de modelos conceptuales que juntos modelan el proceso de diseño y determinan la estructura de un programa.

1.5-ELEMENTOS PRIMORDIALES EN EL MODELO DE OBJETOS:

ABSTRACCIÓN.
La abstracción es el proceso en el cual separamos las propiedades más importantes de un objeto, de las que no lo son. Es decir, por medio de la abstracción definimos las características esenciales de un objeto del mundo real, los atributos y comportamientos que lo definen como tal, para después modelarlo en un objeto de software.

ENCAPSULAMIENTO.
También referido como ocultamiento de la información, el encapsulamiento es la propiedad de la orientación a objetos que nos permite asegurar que la información de un objeto le es desconocida a los demás objetos en la aplicación.

MODULARIDAD.
La modularidad, nos permite poder modificar las características de la clase que definen a un objeto, de forma independiente de las demás clases en la aplicación.

JERARQUIA:
Comúnmente, a la jerarquía “es un” se le conoce como herencia. La herencia simple es la propiedad que nos permite definir una clase nueva en términos de una clase ya existente.

POLIMORFISMO:
El polimorfismo es la propiedad por la cual una entidad puede tomar diferentes formas. Generalmente está entidad es una clase, y la forma en que se consigue que tome diferentes formas es por medio de nombrar a los métodos de dicha clase con un mismo nombre pero con diferentes implementaciones.

1.6-HISTORIA DE LOS PARADIGMAS EN EL DESARROLLO DEL SOFTWARE
Un paradigma de programación es una colección de modelos conceptuales que juntos modelan el proceso de diseño y determinan la estructura de un programa.
Tipos de Paradigmas de Programación
a. Que soportan técnicas de programación de bajo nivel
b. Que soportan métodos de diseño de algoritmos
c. Que soportan soluciones de programación de alto nivel
d. Basado para el desarrollo de sistemas expertos
e. De programación lógica
f. De programación funcional
g. De programación heurística
h. Orientado al objeto

Diferentes lenguajes de programación que soportan cada una de estas categorías de paradigmas
a. Solución procedimental u operacional
b. Solución demostrativa
c. Solución declarativa
d. Beneficios que se obtienen del desarrollo con POO

1.7- BENEFICIOS DEL MODELO DE OBJETOS Y DE LA POO SOBRE OTROS PARADIGMAS


Los objetos son portables y la herencia permite la reusabilidad del código orientado a objetos. Es más sencillo modificar códi-go existente porque los objetos no interac-cionan excepto a través de mensajes; es decir, son independientes en consecuencia a un cambio en la codificación de un objeto no afectará la operación con otro objeto siempre que los mensajes respectivos permanezcan intactos.

La introducción de tecnología de objetos como una herramienta conceptual para analizar, diseñar e implementar aplicacio-nes permite obtener aplicaciones más fáciles de modificar, fácilmente extendibles y a partir de componentes reutilizables.

El código reutilizable, disminuye el tiempo en el desarrollo y hace que el desarrollo del software sea mas intuitivo porque la gente piensa naturalmente en términos de obje-tos más que en términos de algoritmos de software.