miércoles, 19 de septiembre de 2007
Objetivo de Fundamentos de Programación
Concepto de Objeto
1.1 Reconocimiento de objetos y clases en el mundo real y la interacción entre ellos.
El comportamiento de un objeto: Es el conjunto de cosas que pueden hacer un objeto.
Ejemplos de objetos:
1.-[Calculadora]
Atributos: color, teclas, pantalla, volumen, sistema electrónico.
Comportamientos: suma, resta, multiplicación, división, entre otras operaciones matemáticas.
2.-[Cañón]
Atributos: color, plásticos, luz, cristales, ventiladores, circuitos.
Comportamientos: proyectar imágenes.
3.-[Helicóptero]
Atributos: hélices, metal, cristales, motor.
Comportamientos: volar, avanzar a gran velocidad, dar vueltas, bajar y subir, suspenderse en el aire.
4.-[Impresora]
Atributos: Carcasa, tintas, circuitos, motores electrónicos, hojas.
Comportamientos: Imprimir fotos, acetatos, hojas blancas.
5.-[Clima]
Atributos: Cobertura metálica, circuitos electrónicos, tubos, gas, rendijas, sistemas electrónicos.
Comportamientos: enfriar el ambiente.
1.2 La abstracción y el encapsulamiento como un proceso natural.
En parte por el encapsulamiento es simplemente aquello que recubre el exterior del objeto para que los procesos y ejecuciones sean ocultos y no visibles ante las personas.
1.3 La POO y la complejidad del software
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.
1.4 Conceptos del ciclo de vida del software
[Ciclo de vida del software – Modelo de Cascada]
1.4.1 Especificaciones de requerimientos
*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?
1.4.2 Análisis Orientado a Objetos.
1.4.3 Diseño Orientado a Objetos.
1.4.4 Programación Orientada a Objetos, conceptos y características
Este es una en la que no es necesarios por cada vez que necesitemos crear un programa no necesitamos crear todas las líneas de códigos si no que podemos estructurar uno nuevo en base uno anterior esto es porque podemos reutilizar los códigos fuentes por decir así. Para ahorrar tiempo y tener ventajas.
Los principios en que se apoyan las tecnologías orientadas a objetos son:
Objetos como instancias de una clase
Métodos
Mensajes
Y las características que ayudan a definir un objeto son:
Encapsulamiento
Modularidad
Abstracción
Polimorfismo
1.5.1 Abstracción
1.5.2 Encapsulamiento
1.5.3 Modularidad
1.5.4 Jerarquía y herencia
Herencia es aquello que define una relación entre clases, en donde una clase comparte la estructura o comportamiento definido en una o más clases, en otras palabras es un compartimiento de atributos de un objeto de mayor jerarquía a uno de menor jerarquía.
1.5.5 Polimorfismo.
1.6 Historia de los paradigmas en el desarrollo del software.
También hay situaciones donde un paradigma resulta más apropiado que otro.
Los más comunes son el desarrollo en cascada, el desarrollo en espira’‘, el desarrollo por prototipos, el desarrollo incremental, el desarrollo en V y el desarrollo orientado a objetos. También existen modelo híbridos, los cuales combinan elementos de diferentes modelos según las necesidades existentes.
1.7 Beneficios del modelo de objetos y de la POO sobre otros paradigmas
En resumen, la programación orientada a objetos beneficia a los desarrolladores debido a que: Los programas son fáciles de diseñar debido a que los objetos reflejan elementos del mundo real.
Las aplicaciones son más sencillas para los usuarios debido a que los datos innecesarios están ocultos.- Los objetos son unidades autocontenidas.
- La productividad se incrementa debido a que puede reutilizar el código.
- Los sistemas son fáciles de mantener y se adaptan a las cambiantes necesidades de negocios.
- Es más fácil crear nuevos tipos de objetos a partir de los ya existentes.
Simplifica los datos complejos. - Reduce la complejidad de la transacción.
- Confiabilidad.
- Robustez.
- Capacidad de ampliación.