Universidad Nacional
Fundamentos de informática
Prof. Miguel Corrales Ureña
Programación Orientada a Objetos
Andrey Bogarin Dormond
Andrea Bushey Ventura
Mauricio Montero Marín
22-08-2016
Programación orientada a objetos
A) Definiciones
Sistema:
1. m. Conjunto de reglas o principios sobre una materia racionalmente enlazados entre sí.
2. m. Conjunto de cosas que relacionadas entre sí ordenadamente contribuyen a determinado objeto
Desarrollo de sistemas: Proceso mediante el cual el conocimiento humano y el uso de las ideas son llevados a las computadoras; de manera que pueda realizar las tareas para las cuales fue desarrollada. Este proceso consta de las siguientes etapas:
- Problema o requerimientos: En esta etapa se establece de manera clara el problema a resolver, se identifican teorías, principios matemáticos o de cualquier otro tipo que permitan fundamentar el problema satisfactoriamente. Se deben descartar aspectos de poca importancia para el planteamiento del problema.
- Análisis: Se identifican las entradas del problema, los resultados deseados y cualquier requerimiento o restricción adicional, se identifica los tipos y estructuras de datos necesarios para los datos del problema, se identifican las funciones u operaciones necesarias para cubrir los requerimientos del problema.
- Diseño: El diseño consiste básicamente en desarrollar una lista de pasos llamados algoritmos, verificando que el problema se resuelve de manera correcta y eficiente, es la parte más difícil del proceso.
- Implementación: En esta etapa consiste en pasar el algoritmo a un programa de computadora, convirtiendo de esta manera cada paso del algoritmo en instrucciones en el lenguaje de programación para ellos se necesitan de las siguiente herramientas:
- Un editor de texto para escribir el código fuente.
- Un intérprete que procese el código fuente y lo ejecute.
- Un debugger para que depure los errores y nos ayude a corregir el código fuente hasta que este se ejecute sin errores. - Verificación y prueba: Esta última etapa consiste en la ejecución del programa completo, se deben de probar cada una de las funciones por separado y luego en conjunto. Si el programa presenta algún error se repite la cuarta etapa hasta que esta etapa satisfaga los requerimientos del problema.
Crisis de software: La crisis del software son los problemas que se presentaron durante el desarrollo del software especialmente fue marcada por los excesos de costos, la escasa fiabilidad, la insatisfacción de los usuarios y los horarios de tiempos., mejor conocidos como "síntomas" de la crisis de software. Esto provocó grandes pérdidas en la década de los 70´s sobre el desarrollo de software, dando como resultado una nueva disciplina llamada "Ingeniería del Software" que abarca los aspectos técnicos del software y la gestión de datos
Paradigmas de programación: “Un paradigma de programación indica un método de realizar cómputos y la manera en que se deben estructurar y organizar las tareas que debe llevar a cabo un programa ”
Paradigma de programación orientado a objetos: Es el paradigma que define objetos y clases como la base para la programación. Cada objeto está definido por sus atributos y su comportamiento está definido por la operaciones que dichos objetos pueden hacer. La programación orientada a objetos expresa un programa como un conjunto de estos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar. Su uso se popularizó en los 90. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.
B) Características y conceptos fundamentales de la POO.
La base conceptual de este paradigma son los objetos, sus relaciones e interrelación;
Los objetos son entidades que tienen;
- Un estado: datos que un objeto tiene en un momento determinado.
- Un comportamiento: procedimiento o métodos que contiene un objeto, es decir, las operaciones asociadas al objeto.
- Una identidad: un identificador que hace una referencia única al objeto.
Algunas características importantes de los sistemas de software actuales son:
- Complejidad: la arquitectura interna de los sistemas actuales de software es compleja, incluyen frecuentemente concurrencia y paralelismo. La abstracción en términos de conceptos de OO es una técnica que ayuda a tratar con la complejidad.
- Amigabilidad: Este es un requerimiento de suma importancia para los sistemas de software en general.
- Reusabilidad: Tomar componentes creados por otros es mejor que crearlos nuevos. La herencia es un mecanismo de OO que estimula la reusabilidad del software. Facilita el rápido desarrollo del software.
- OO se define por herencia, encapsulación, métodos y mensajes, como en Smalltalk.
- OO se define encapsulación, abstracción de datos, métodos, mensajes, herencia y vinculación dinámica.
- Es un modelo que simula el comportamiento ya sea de una parte del mundo real o imaginario.
- Objetos, clases y herencia. Los objetos son entidades autónomas que tienen un estado y responden a mensajes. Las clases agrupan los objetos por sus atributos y operaciones.
- Todas tienen el común de usar objetos como una encapsulación para proteger los datos con todas las operaciones legales que actúan sobre esa información oculta.
C)Historia, orígenes POO.
La programación OO empezó hace 30 años. En los 1990s se incrementó dramáticamente la demanda para sistemas de software OO, por la promesa en la revolución en el desarrollo de software. Han surgido varias metodologías para el desarrollo de software, que tienen que ver con algunas o todas las fases del ciclo de vida del software, desde los requerimientos al mantenimiento. Las razones del rápido desarrollo en los últimos años han sido una mejor modelación de aplicaciones del mundo real y la posibilidad del reuso del software durante el desarrollo de un sistema de software
D) Principales lenguajes exponentes de POO.
Hoy en día, la mayoría de los programadores emplean lenguajes de programación como C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP, JavaScript, entre otros, aunque todavía se utilizan, sobre todo profesionalmente, los clásicos COBOL, FORTRAN, Pascal o el mítico BASIC.
C++ soporta todas las características anteriormente mencionadas que definen la orientación a objetos, aunque hay numerosas discusiones en torno a la consideración de C++ como lenguaje orientado a objetos. La razón es que en contraste con lenguajes tales como Smalltalk, Java o C#, C++ no es un lenguaje orientado a objetos puro.
Java por su parte, más que un lenguaje orientado a objetos, es un lenguaje de objetos. Java incorpora el uso de la orientación a objetos como uno de los pilares básicos y fundamentales del lenguaje.
Mientras C++ soporta orientación a objetos, pero es compatible con C y permite que programas C++ se escriban sin utilizar características orientadas a objetos. De hecho, C++ es un lenguaje multiparadigma que permite programación estructurada, procedimental, orientada a objetos y genérica.
Esta situación no se da en Java, dotado desde las primeras etapas de su diseño de esta filosofía, y donde no cabe obviar la orientación a objetos para el desarrollo de programas, por sencillos que éstos sean.
___________________________________________________________________________
Joyanes,L. Capítulo 1: Introducción a la ciencia de la computación y a la programación, (pág 23-35). Consultado de : http://assets.mheducation.es/bcv/guide/capitulo/844814645X.pdf
E) Importancia del POO en el mundo actual.
La importancia de la programación orientada a objetos se basa en la cualidad de los objetos forma una unidad que es más coherente y fácil de clasificar. Está basada en el modo de pensar del hombre y en el modo de trabajar de la máquina, el elemento básico de esta programación no es solo la función sino un ente denominado objeto.
La ventaja es que es una forma de romper problemas complejos en otros más manejables, es más fácil de entender y proporciona un método consistente para la estructuración de su código.
No hay comentarios:
Publicar un comentario