Equipo 1 Fundamentos De Programacion

BITACORA DEL EQUIPO 1

Sunday, September 17, 2006

Cuestionario 1

1.- ¿Cómo fue la interacción del equipo?
R= al principio un poco desorganizada, pero una vez que nos dispusimos a reunirnos y repartirnos el trabajo, todo salio bien.

2.- ¿Qué tema se nos hizo más facil? ¿Por qué?
R= el ciclo de vida del software, por que los procesos son bastante sencillos de entender, como detección del problema, analisis, diseño, son obvios y de sentido comun.

3.- ¿En qué tema tenemos dificultades, dudas, etc?
R= en la diferencia entre encapsulamiento y abstracción.

4.- ¿Qué fue lo que más me gusto de los temas en clase?
R= el debate de la definicion de objeto, y los comentarios de las diferencias entre encapsulamiento y abstracción.

5.- De manera general, mi apreciación de clases fue:
R= interactiva, pero que en momentos se volvia un poco tedioso por tanta teoria.

6.- Nuestras sugerencias para los siguientes temas son:
R= mantener el hecho de reunirse en equipos para poder comentar sobre el tema de exposicion en curso.

7.- Las sugerencias para el equipo son:
R= nos agradaria que los equipos no leyeran mientras exponen, sino que se preparen adecuadamente y expliquen con sus propias palabras los temas ademas de que ejemplifiquen para que quede claro.

Friday, September 15, 2006

Resumen

·¿Por qué seguimos buscando nuevas técnicas de desarrollo? Por el aumento de la complejidad de los sistemas.

·En un programa orientado a objetos tendremos a un conjunto de objetos colaborando entre ellos.

·La orientación a objetos es paradigma de que está de moda para el desarrollo de software.

·Un objeto es una abstracción conceptual del mundo real que se puede traducir a un lenguaje de programación orientado a objetos.

·Un objeto del mundo real tiene características y comportamientos, y de la misma manera, un objeto del mundo del software tiene variables y métodos.

·Una Clase es una plantilla que define las variables y métodos a ser incluidas en un tipo de objeto específico.

·Los objetos también son llamados instancias de la Clase. Los objetos sólo almacenan su estado. De dice que un objeto tiene estado cuando tiene valores en sus variables.

·Los objetos se comunican entre ellos usando los mensajes. Un mensaje es la invocación de un método del objeto.

·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.

Antonio de Jesús Montoya López

Beneficio del Modelo de Objetos y de la POO sobre otros paradigmas

¿Cuáles son las ventajas de un lenguaje orientado a objetos?

· Fomenta la reutilización y extensión del código.
· Permite crear sistemas más complejos.
· Relacionar el sistema al mundo real.
· Facilita la creación de programas visuales.
· Construcción de prototipos
· Agiliza el desarrollo de software
· Facilita el trabajo en equipo
· Facilita el mantenimiento del software

Lo interesante de la POO es que proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.
ISC. Celia Rubí Náfate Velázquez

Historia de los paradigmas en el desarrollo del software

Tradicionalmente, la programación fue hecha en una manera secuencial o lineal, es decir una serie de pasos consecutivos con estructuras consecutivas y bifurcaciones.

Los lenguajes basados en esta forma de programación ofrecían ventajas al principio, pero el problema ocurre cuando los sistemas se vuelven complejos. Estos programas escritos al estilo “espaguetti” no ofrecen flexibilidad y el mantener una gran cantidad de líneas de código en sólo bloque se vuelve una tarea complicada.

Frente a esta dificultad aparecieron los lenguajes basados en la programación estructurada. La idea principal de esta forma de programación es separar las partes complejas del programa en módulos o segmentos que sean ejecutados conforme se requieran. De esta manera tenemos un diseño modular, compuesto por módulos independientes que puedan comunicarse entre sí. Poco a poco este estilo de programación fue reemplazando al estilo “espaguetti” impuesto por la programación lineal.

Entonces, vemos que la evolución que se fue dando en la programación se orientaba siempre a ir descomponiendo más el programa. Este tipo de descomposición conduce directamente a la programación orientada a objetos.
Pues la creciente tendencia de crear programas cada vez más grandes y complejos llevó a los desarrolladores a crear una nueva forma de programar que les permita crear sistemas de niveles empresariales y con reglas de negocios muy complejas.

Para estas necesidades ya no bastaba la programación estructurada ni mucho menos la programación lineal. Es así como aparece la programación orientada a objetos (POO). La POO viene de la evolución de la programación estructurada; básicamente la POO simplifica la programación con la nueva filosofía y nuevos conceptos que tiene. La POO se basa en la dividir el programa en pequeñas unidades lógicas de código.

A estas pequeñas unidades lógicas de código se les llama objetos. Los objetos son unidades independientes que se comunican entre ellos mediante mensajes. Veamos con mayor detenimiento este tema.

ISC. Celia Rubí Náfate Velázquez

Thursday, September 14, 2006

1.4.2 Analisis orientado a objetos

se trata de ver como funcionara el sistema ya en el ambiente de trabajo en el que se desarrolle pues se tiene que ver la funcionalidad con la que trabajen los usuarios en esta fase se documenta tambien todas las observaciones que se obtengan durante el proceso de recopilacion de informacion acerca de los usuarios que estaran en contacto con el sistema y ver que tan accesible puede ser para ellos este, se evalua la informacion obtenida para visualizar todo lo que puede ser el comportamiento del usuario interactuando con el sistema.



DEYSI DEL ROSARIO HERNANDEZ DEL CARPIO

1.4. conceptos del ciclo de vida del software 1.4.1 especificaciones de requerimientos

en esta fase se deben especificar todos los aspectos del problema a resolver porque tambien se determina la solucion al problema planteado siguiendo un proceso para el optimo rendimiento del software a desarrollar, ya que se analiza lo que quiere en si el cliente que haga su sistema identificar los focos rojos que necesita sistematizarse asi como tambien las posibles restricciones que puede tener a largo plazo durante su funcionamiento es decir sobre la marcha debe de suponerse cualquier modificacion a futuro, mas que nada es visualizar lo que el cliente necesita y quiere para satisfacer su necesidad.



DEYSI DEL ROSARIO HERNANDEZ DEL CARPIO

Monday, September 11, 2006

1.5 Elementos primordiales en el modelo de objetos

1.5.1 Abstracción

como ya se habia mencionado antes, la abstracción es un mecanismo utilizado por los programadors para controlar la complejidad de un objeto. Se dice que mientras más abstracto sea un objeto, es menos complejo.
la abstracción produce una imagen mental que cada persona se forma sobre algo en particular y depende de la información brindada a la persona y sus intereses sobre ese algo.

por ejemplo la idea abstracta que pueden tener extranjeros acerca de México, puede ser un sombrero, unos mariachis, un taco, etc. eso depende de cada persona y cultura.







<------------México






1.5.2 Encapsulamiento


El encapsulamiento es la ocultación de la información detallada de un programa que el cliente no necesita ver.

Desde mi punto de vista, el encapsulamiento es el hecho general de englobar o de aislar algo, de forma que se genera una imagen del mismo, y esto tiene como consecuencia, la idea abstracta de algo.

un ejemplo de encapsulamiento, es el gabinete del CPU, todos sabemos que dentro hay varios componentes como disco duro, unidades de CD o DVD, memoria ram, tarjeta madre, etc, pero todo eso esta aislado y no lo vemos debido a que esta encapsulado en el gabinete.









1.5.3 Modularidad


La modularidad es una propiedad del paradigma orientado a objetos, que permite realizar un sistema de información en forma dividida o en partes pequeñas llamadas módulos, los cuales tienen la cualidad de ser modificados, y que en ocasiones son independientes, es decir, que se pueden ejecutar de forma separada, y no necesariamente junto con todos los componentes del software.
esta propiedad permite reutilzar un sistema terminado para otro proyecto, aprobechando los modulos que pueden ser utiles, adaptandolos unicamente a las nuevas necesidades del cliente, lo que implica que un software puede ser actualizado muchas veces y ademas ahorrar lineas de codigo aprobechando modulos que realizan tareas similares a las que deseamos desarrollar.


1.5.4 Jerarquía y Herencia

Jerarquia: es un orden de importancia entre las clases de un sistema de información y los objetos y datos que se incluyen en las mismas y sigue el siguiente orden:

1.- Super clase
2.- Clase
3.- Sub clase

ejemplo:










Herencia:
es una propiedad para compartir datos y métodos entre clases, subclases y objetos.

Asi como los hijos heredan ciertas caracteristicas de los padres, como rasgos faciales, caracter, gustos, etc, los objetos o subclases heredan ciertos datos o métodos útiles que pueden aprobchar de la clase padre.


1.5.5 Polimorfismo

según su origen etimológico, polimorfismos ser refiere a "muchas formas", en el caso de la programación se refiere a las multiples formas de implementar un metodo.

Dentro de lo que comprendi durante la clase, es que el polimorfismo es una cualidad que tienen los objetos de comportarse de formas diferentes, según los mensajes o instrucciones que recivan, sin modificar su escencia o atributos.

por ejemplo: si tienemos a un objeto llamado "número" que es una cantidad numerica, si le damos la instrucción "suma" con otro numero, se sumara, y si le damos la instrucción de "resta", tambien la puede realizar, y sin embargo, sigue siendo un número, no cambio sus caracteristicas.




Autor: Gerardo Aguilar Hernández

1.3 La POO y la complejidad del software



















Booch fue el pionero del paradigma orientado a objetos, el cual pretende enfocar la programación lo más cercano a la realidad, manejando lo que nosotros como personas manejamos, objetos con sus atributos y funciones, y no los codigos lineales que se referian a conceptos no tan fácilmente comprensibles que se manejaban en el paradigma estructurado o lineal.

Definición general de software (también conocido como sistema de información): se puede definir como un portafolio de aplicaciones o un conjunto de lineas de codigo enfocado a objetos.



una vez aclarado el concepto de software podemos mencionar los aspectos de la complejidad del software:
  1. Complejidad de Dominio: este punto se refiere a la capacidad o dificultad que puede tener un analista para interpretar y analizar cuales son las necesidades del cliente para asi poder crear un sistema de información acorde a las mismas. Esto es muy importnte, empezando porque el cliente sepa realmente lo que desea para el sistema y tambien se sepa expliar, y tambien tienen que ver lo acertada que sea la interpretación del analista.


2. Dificultad de gestionar el proceso de desarrollo:
mientras más grande sea un software o sistema de información a desarrollar, se requieren más colaboradores, sin embargo, esto involucra una mayor coordinación, debido a que los programadores pueden tener ideas diferentes respecto al desarrollo del software, o puede que ellos se encuentren separados geograficamente, lo cual dificulta la comunicación entre ellos.
+ magnitud del software ---> + dificultad de comunicación y coordinación




3.-La posible flexibilidad a través del software:
Este punto se puede explicar más facilmente por puntos;
*- facilidad de usar y actualizar (dar mantenimiento)
*- que un programa sea apto de ser modificado, lo que impide que se vuela obsoleto
*- permite la reutilización del software, debido a la modularidad.
*- capacidad de que se creen más clases en el software.
*- que no sea tan estricto en cuanto a definición de datos.





Autor: Gerardo Aguilar Hernández

1.1 Reconocimiento de objetos y clases en el mundo real y la interacción entre ellos.

1 CONCEPTOS BÁSICOS DEL MODELO ORIENTADO A OBJETOS.

Definiciones:

Objeto: todo lo que puede ser materia de conocimiento o sensibilidad de parte del sujeto.
Es una cosa o entidad nominal que tiene como características: atributos y comportamiento.
- Los atributos se refieren a las características que describen a los objetos, por ejemplo su nombre, edad, forma, color, etc.

- El comportamiento, son las cosas que el objeto puede hacer, como moverse, hablar, volar, correr, etc.

Clases: ordenen que con arreglo a determinadas condiciones o cualidades, se consideren comprendidas diferentes personas o cosas, es decir, es la agrupación de objetos con características semejantes y que tienen un objetivo en común.

La abstracción y el encapsulamiento como un proceso natural
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. Los mecanismos utilizados por los programadores para controlar la complejidad; entre todos ellos se destaca la abstracción. Programación y abstracción “los humanos hemos desarrollado una técnica excepcionalmente potente para tratar la complejidad: abstraernos de ella. Incapaces de dominar en su totalidad los objetos complejos, se ignoran los detalles no esenciales, tratando en su lugar con el modelo ideal de objeto y centrándonos en el estudio de sus aspectos esenciales.”

Alumno: Carlos Grajales Diaz.

Thursday, September 07, 2006

1.2 La abstracción y el encapsulamiento como un proceso natural

Encapsulamiento:
el encapsulamiento consiste en aislar y agrupar ciertas caracteristicas de un objeto u objetos dentro de algo mas general, como encerrar algo dentro de una caja para que solo podamos ver ciertas cosas, lo cual lleva a la abstracción.
un ejemplo de esto seria englobar todos los componentes de una computadora, como el procesador, el disco duro, las unidades de CD o DVD, la memoria RAM, etc, dentro del gabinete del CPU, lo cual queda encapsulado dentro de ese cajon.




















Abstracción:
la abstracción consiste en quitarle complejidad a algo, ya sea un objeto, proceso o incluso un sistema de información. Enfocado en la creación de sistemsa de información por ejemplo, permite al cliente ver unicamente lo que necesita ver, en este caso puede ser la interfaz gráfica, y asi no necesita estar involucrado en aspectos tecnicos de la programación o la estructuración del software, sino unicamente lo que le interesa. cabe destacar que cada persona puede tener una idea abstracta muy particular de las cosas en general, asi cuando se nos dice que pensemos en un país o lugar, a muchos les viene a la mente su bandera, la forma que tiene geograficamente, la forma en que visten sus habitantes, etc., por lo que cada quien se forma su propia idea abstracta de las cosas.















Autor: Gerardo Aguilar Hernández

Friday, September 01, 2006

1. Conceptos básicos del modelo orientado a objetos)

1.1 RECONOCIMIENTO DE OBJETOS Y CLASES EN EL MUNDO REAL:

CONCEPTO DE OBJETO: es una cosa o entidad nominal que tiene como caracteristicas: atributos y comportamiento.
la mayoria de los objetos del mundo real tienen atributos y un cierto comportamiento, entonces se puede decir que es un conjunto de cosas que pueden hacer un objeto.