jueves, 10 de septiembre de 2009

Tema: 1.5.2 Encapsulamiento Objetos


Encapsulamiento. Consiste en ocultar los atributos de un objeto, a la vez que se provee una interfaz pública por medio de sus métodos permitidos. También se define como la propiedad de los objetos de permitir acceso a su estado solamente a través de su interfaz o de relaciones preestablecidas con otros objetos. Dicho de otra manera el encapsulamiento es la manera de aislar la información del diseño y ejecución, como lo es los programas, únicamente miramos ante nos ojos una fachada bonita del programa mas sin embargo no miramos a simple vista el proceso de ejecución de cada orden que le damos al programa eso seria el encapsulamiento.

Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

tema: 1.5.1 Abstraccion Objetos


Abstracción. Consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. Entonces entendemos que abstracción es analizar a fondo y desmembrar parte por parte hasta llegar al centro que compone un objeto que estemos analizando. Como lo es en abstracción orientada a objetos, es analizar los atributos, de los objetos para poder ir conociendo a fondo que es lo que conforman o las partes que forman dicho objeto. Y así sacar provecho de los atributos porque recordemos que entre más características del objeto mas base o fundamento de trabajo podemos tener.


Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.5 Elementos Primordiales en el Modelo de Objetos

La programación Orientada a Objetos trata de cumplir las necesidades de los usuarios finales, estás tareas se realizan mediante la modelización del mundo real, el sopote fundamental es el modelo objeto.

Los elementos más importantes de este modelo son:

  • Abstracción
  • Encapsulamiento
  • Modularidad
  • Jerarquia y Herencia
  • Polimorfismo


Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.4.4 Programacion Orientada Objetos Conceptos y Caracteristicas

¿ Que es la programación orientada a objetos?.

La Programación Orientada a Objetos (POO) es una forma de enfocar la tarea de programación. Los enfoques de la programación han cambiado drásticamente desde la invención de las computadoras, la creciente complejidad de los programas, antes se realizaban mediante una consola las instrucciones máquinas en binario. Esto funcionaba porque los programas sólo tenían unos pocos cientos de instrucciones. Cuando crecierón los programas, se invento el lenguaje ensamblador para que el programador pudiera manejar programas más largos y complejos usando una representación simbólica de las instrucciones máquina.

Los lenguajes de alto nivel aparecierón para proporcionar al programador más herramientas con las cuales gestionar esa complejidad. En los años sesenta nace la programación estructurada, este es el método alentando por varios lenguajes como pascal, y C. Con los lenguajes estructurados fue posible escribir programas moderadamente complejos de una forma bastante sencilla. Sin embargo, usando incluso la programación estructurada, cuando los proyectos Alcanzan cierto tamaño, su complejidad se vuelve demasiado difícil para ser controlada por un programador.

La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos que animan o alientan una nueva visión de la tarea de la programación. La Programación Orientada a Objetos permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades autocontenidas llamadas Objetos.


Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.4.3 Diseño Orientado a Objetos


Es el proceso de construir un modelo de objetos para la solucion.El diseño orientado a objetos es el proceso de dividir una solucion en una cantidad determinada de objetos constituyentes.







Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.4.2 Analisis Orientado a Objetos

Se considera como un análisis de actividades y consiste en la solución de negocios para el usuario y se expresa con los casos de uso. El diseño lógico es la solución del equipo de proyecto del negocio y consiste de las siguientes tareas: Identificar los usuarios y sus roles Obtener datos de los usuarios Evaluar la información Documentar los escenarios de uso Validar con los usuarios Validar contra la arquitectura de la empresa.



Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

martes, 8 de septiembre de 2009

Tema: 1.4.1 Especificaciones de Requerimientos

El comienzo de la elaboración de un software comienza con la petición de una persona e ahí donde comienza la investigación preliminar, que consta de tres partes: aclaración de la solicitud, Estudio de factibilidad, Aprobación de la solicitud.

*Aclaración de de la solicitud: es el proceso donde se definen bien los términos de que es lo que el usuario desea en el programa.

* Estudio de factibilidad: Se debe determinar que el sistema solicitado sea factible de desarrollar; existen 3 aspectos relacionados con el estudio de factibilidad:
a) Factibilidad Técnica: esto es ver, cuales son las condiciones en que esta la empresa el equipo y el personal si los dos están alta mente calificados o si se debe invertir.
b) Factibilidad económica: esta parte es en donde comprobamos si la empresa tiene dinero como para invertir en la tecnología que se requiere y otros implementos, y saber si el beneficio de implementación de nueva tecnología será recuperada a corto o a largo plazo.
c) Factibilidad Operacional: esto es si el personal será capaz de manejar y administrar tanto la nueva tecnología según sea el caso o el software, o si existirá una resistencia por parte de alguna persona que se oponga al cambio evolutivo.

*Aprobación de la solicitud: al realizar el estudio de factibilidad en sus tres aspectos, y determinar que si pasan la calidad, se aprueba el proyecto y se comienza a la pronta realización del software.


Los analistas al trabajar con los empleados y administradores, deben estudiar los procesos de una empresa para dar respuesta a las siguientes preguntas clave:

¿Qué es lo que hace?
¿cómo se hace?
¿con qué frecuencia se presenta?
¿Qué tan grande es el volumen de transacciones o de decisiones?
¿Cuál es el grado de eficiencia con el que se efectúan las tareas?
¿Existe algún problema?
si existe un problema, ¿qué tan serio es?
si existe un problema, ¿cuál es la causa que lo origina?


Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.4 Conceptos del Ciclo de Vida del Software

El proceso de elaboración de un software comienza con el análisis y diseño del mismo, cuando el personal en general se percata de que se haya en la necesidad de implementar un sistema que proporcione un mejor acondicionamiento del establecimiento y un mejor rendimiento.

[Ciclo de vida del software – Modelo de Cascada]


Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.3 La Poo y la Complejidad del Software

En este apartado hablaremos de las cosas que forman o debemos tomar en cuenta en programación orientada a objetos ya que son la unión de varios elementos inseparables que la conforman. Describimos a continuación.

La complejidad del dominio del problema: es en donde llevamos acabo la interacción entre desarrollador y usuario (cliente) en donde se tratan los términos y procesos que el usuario desea que el software ejecute o realice, pero en momentos el usuario puede tener poca o nula noción que saber explicarse y hacerse comprender por el desarrollador de software.


La dificultad de gestionar el proceso de desarrollo:
Aquí es en donde llevamos acabo el desarrollo de un software, es aquí donde surgen los problemas. El elaborar un sistema de software nuevo, es una gran cantidad de escritura, además de un grupo de desarrolladores, que se trate de hacer lo mas pequeño posible porque es aquí donde existen varios elementos que se exponen por diferentes desarrolladores. Si el grupo de desarrollo se manejan a distancia, es más el problema porque siempre existen comunicación complejas, ósea que existen comunicación compuestas por varios puntos de vistas diferentes. Que no pueden ser tratados muy específicamente por la distancia o dispersión de los desarrolladores.

La flexibilidad a través del software:
Esta es donde el desarrollador tiene todo una amplia gama de expresar todo lo que quiera que el programa ejecute. O tipos de abstracciones.

Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

domingo, 6 de septiembre de 2009

Tema: 1.2 La Abstraccion y el encapsulamiento como un proceso natural

Abstracción

Es un método por el cual abstraemos, una determinada entidad de la realidad de sus características y funciones que desempeñan, estos son representados en clases por medio de atributos y métodos de dicha clase.

Ejemplo: La abstracción de un automóvil.

- Características: Color, año de fabricación, modelo, etc.
- Métodos o Funciones: Frenar, encender, etc.


A esto se le llama abstracción. En general un programa no es más que una descripción abstracta de un procedimiento o fenómeno que existe o sucede en el mundo real.

- La abstracción es crucial para comprender este complejo mundo.
- La abstracción es esencial para el funcionamiento de una mente humana normal
y es una
herramienta muy potente para tratar la complejidad.
- La abstracción es clave para diseñar un buen software.

Procedimientos: Proporcionó la primera posibilidad de ocultación de información.

Módulos: Es una técnica que proporciona la posibilidad de dividir sus datos y procedimientos en una parte privada y una parte pública. Proporcionan un método efectivo de ocultación de la información, pero no permiten realizar instanciación, que es la capacidad de hacer múltiples copias de las zonas de datos.

TADS: Un tipo abstracto de dato (TAD) es un tipo de dato definido por el programador que se puede manipular similarmente a los tipos de datos definidos por el sistema. Un tipo abstracto de dato corresponde a un conjunto (puede ser de tamaño indefinido) de valores legales de datos y un número de operaciones primitivas que se pueden realizar sobre esos valores. Para construir un tipo abstracto de dato se debe:

1.-Exponer una definición del tipo.
2.- Hacer disponible un conjunto de operaciones.
3.- Proteger los datos asociados con el tipo.
4.-Permitir instancias múltiples del tipo.

Si nos concentramos en las cosas, podemos encapsular en un objeto nuestro entendimiento acerca de sus características y el comportamiento de ese objeto. Lo tratamos como una entidad definida y su comportamiento no esta disperso en nuestro diseño. Es decir, no separamos la viscosidad del aceite de su color sino creamos un objeto aceite y ponemos ambas características como característica de dicho objeto.

El encapsulamiento nos permite considerar a los objetos como cajas negras: como objetos que podemos utilizar sin enfocarnos en la forma en que trabajan.


Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Tema: 1.1 Reconocimiento de Objetos y Clases en el mundo real y la interacción entre ellos (Video)

Hay que empezar con definir con las cosas que vamos a trabajar de hoy en adelante:

Objeto: Se define como una estructura que tiene atributos (características) y comportamientos (procedimientos) de una entidad, tiene un papel bien definido en una aplicación. (Ejemplo los botones).

Cada objeto tiene:

Estado: Conjunto de valores de los atributos en un instante de tiempo dado. El comportamiento de un objeto puede modificar el estado de este.

Comportamiento: Relacionado con su funcionalidad y determina las operaciones que este puede realizar o a las que puede responder ante mensajes enviados por otros objetos.

Identidad: Es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto.

Los objetos, concretos y abstractos, están a nuestro alrededor, forman nuestro entorno. Podemos distinguir cada objeto en base a sus características y comportamientos.

Por ejemplo, en un aula de clases observamos los siguientes objetos:
• Alumno
• Profesor
• Mesa
• Silla
• Mesa banco
• Pizarrón

Interacción entre objetos: Los objetos no sólo tienen atributos relacionados con su forma física sino que, además, exhiben comportamientos específicos de su clase.

• Alumno: Estudia, aprende.
• Profesor: Enseña, evalúa.
• Mesa: Ordenada, desordenada.
• Silla: Ocupada, desocupada.
• Mesa banco: Ocupado, desocupado.
• Pizarrón: Pintado, borrado


Clases: Es la definición de un objeto. Cuando se programa un objeto y se definen sus características y funcionalidades, realmente se programa una clase.

Aqui hay otro ejemplo de lo que son las clases y los objetos de n3kroz, http://www.youtube.com/watch?v=QDZ1h8prtVs :




Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion

Introducción (Video)

El nombre de la materia es Fundamentos de Programacion, se encuentra o se da en la carrera de Ingeneria en Sistemas Computacionales.

Objetivo: El estudiante analizará problemas y represantará su solución mediante modelos orientados a objetos, diseñando los algoritmos para las funciones miembros y las aplicaciones que interactúan con el obj
eto, así como implementarlos en algún lenguaje de programación.

En este curso se estudiarán los fundamentos de la algoritmia: la ciencia y arte de diseñar algoritmos para la resolución sistemática de problemas de cualquier índole.

El curso de fundamentos de programación pretende ilustrar los conceptos básicos de programación. Esto permitirá al estudiante una buena comprensión de la programación sin importar el lenguaje con que se trabaje.

Este curso pretende generar las competencias necesarias para que quien tome el curso desarrolle aplicaciones que den solución a los problemas que le plantee la vida diaria..

A continuación muestro un video encontrado en youtube, donde se ven los elementos basicos que vamos a usar en esta materia:

De: Ing. Jorge Gómez

Aux. Francisco.



Fuentes:
Mi tecnologico:http://www.mitecnologico.com/Main/FundamentosDeProgramacion