Upload
luz-camerino
View
212
Download
0
Embed Size (px)
Citation preview
LLenguajes y Herramientas de enguajes y Herramientas de DesarrolloDesarrollo
Técnica.ComTécnica.Com
Los lenguajes de programaciónlenguajes de programación son estructuras simbólicas que permiten disponer de los dispositivos de una computadora. Cada lenguaje cuenta con los siguientes elementos:
Sintaxis
Palabras reservadas
Comandos (open, close, quit, call)
Funciones ( log(), abs(), tan(), cos() )
Operadores lógicos ( and, or, xor, not )
Operadores aritméticos ( +, -, *, / )
Operadores relacionales ( >, <, >=, <=, <> )
Semántica
Estructura general
¿Qué son los lenguajes de programación?T
écn
ica.
com
Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.
Richard Ball (1987) a través de una herramienta llamada “The application matrixThe application matrix”, propone que la aplicación que se desea desarrollar determina el lenguaje apropiado.
Separa las aplicaciones en tres categorías (A, B,C), que se afectan en cuanto a los atributos de los datos, los atributos de la aplicación, y los atributos del proyecto.
The application matrix: ¿qué se busca programar?T
écn
ica.
com
Fuente: “Information Systems: Management Principles in Action”, Wysocki & Young, Wiley & Son’s.Fuente: “Information Systems: Management Principles in Action”, Wysocki & Young, Wiley & Son’s.
Atributo de… Clase A Clase B Clase CLos Datos Personales Departamentales Estratégicos
No estratégicos Alto volumenActualiza la base de datos de la empresa
Bajo volumenUtilizado por otros programas
IndependienteLa Aplicación Personal Coorporativa Compleja
Stand-AloneUtilizado por más de una persona
Extensa
El Proyecto 1 a 5 días de trabajo 6 a 20 días de trabajo20 a 40 días de trabajo, Aprobación formal del proyecto.
No hay proyecto formalAlgo de aprobación de proyecto
Más de 40 días de trabajo, Utilizar estándares de desarrollo de sistemas.
Herramientas de desarrollo
Word, Excel, Access.(Front-End) Visual Basic, C, C++, COBOL
(Front-End) Visual Basic, C++, (Back-End) Progress, SQL Server, Informix, ORACLE
Los lenguajes pueden ser clasificados de muchas formas:
Clasificaciones de los lenguajes.T
écn
ica.
com
LenguajesLenguajes
En cuanto a NivelEn cuanto a Nivel
En cuanto a Generación
En cuanto a Generación
En cuanto a Orientación
En cuanto a Orientación
Bajo Nivel
Alto Nivel
Primera Generación
Segunda Generación
Tercera Generación
Cuarta Generación
Procedimientos
Objetos
Lógica
Reglas
Lenguaje Natural
En cuanto al alcance de su propósito
En cuanto al alcance de su propósito
Propósito General
Propósito Específico
Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.
• Lenguajes de propósito generalLenguajes de propósito general.- Son aquellos lenguajes que nacieron pensando en el manejo de cualquier aplicación computacional, sin importar la rama específica del conocimiento que se utilice. Una forma de reconocerlos es viendo que las funciónes implícitas del lenguaje comprenden gestión de texto, funciones matemáticas, funciones financieras, funciones gráficas, gestión de bases de datos, etc. Claramente se puede notar que no están pensados para un tipo de aplicación en específico. Ejemplos: C, BASIC, Pascal, PL/I y el Ada.
• Lenguajes de própósito específicoLenguajes de própósito específico.- Son aquellos que fueron pensados para el desarrollo de sistemas, de una determinada rama o tendencia del conocimiento. Ejemplo: FORTRAN (orientación hacia desarrrollos matemáticos y cálculos), VPExpert (lenguaje basado en reglas, para codificar conocimiento y crear sistemas expertos).
Los lenguajes y el alcance de su propósito.T
écn
ica.
com
Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.
• Los lenguajes de programación se dividen en dos categorías fundamentales: lenguajes de bajo y alto nivel.
– Los lenguajes de bajo nivellenguajes de bajo nivel son dependientes de la máquina; es decir, que están diseñados para ejecutarse en una determinada computadora.
– Los lenguajes de alto nivellenguajes de alto nivel (por ejemplo, COBOL y BASIC) son independientes de la máquina y se puede utilizar en una variedad de computadoras.
– Los lenguajes de muy alto nivellenguajes de muy alto nivel (por ejemplo generadores de código, CASE, y aplicaciones de lenguaje natural), son lenguajes con mecanismos inteligentes que ayudan a la utilización de lenguajes de más bajo nivel. Son especie de “facilitadores” para el empleo de otris lenguajes.
Los lenguajes y su nivel.T
écn
ica.
com
Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.
• Cada computadora sólo tiene un lenguaje de programación que se puede ejecutar: el lenguaje máquina.
– Primera Generación: Lenguaje máquinaPrimera Generación: Lenguaje máquina.- Están escritos en el nivel mas básico de operación de la computadora. En el lenguaje máquina, se codifica las instrucciones como una serie de uno (1) y cero (0).
– Segunda Generación: Lenguajes ensambladoresSegunda Generación: Lenguajes ensambladores.- Un conjunto de instrucciones para un lenguaje ensamblador corresponde, sobre a una base uno a uno, a las instrucciones de la maquina. Al igual que los lenguajes de la maquina, los lenguajes ensambladores son únicos para una computadora lo hace ser lenguaje de bajo nivel. La gran diferencia entre los lenguajes es la manera en que los programadores representan las instrucciones. En lugar de utilizar una serie confusa de unos (1) y cero (0) para representar instrucciones, los lenguajes ensambladores utilizan símbolos fáciles de reconocer, conocidos como nemotécnicos.
Generaciones: 1a y 2a; bajo nivel.T
écn
ica.
com
Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.Fuente: “La Informática y el Derecho”, Técnica.Com, José F. Ramírez. D.R.
• Los lenguajes de tercera generaciónlenguajes de tercera generación (3GL; third-generation languages) son los lenguajes propiamente como los conocemos (poseen instrucciones, funciones, sintaxis, semántica); ya trascienden el uso de los términos nemotécnicos. Una instrucción puede indicar 1 o más tareas para el computador. Pueden dividirse como sigue:
Generaciones: 3a, alto nivel.T
écn
ica.
com
Lenguajes de 3a Generación
Lenguajes de 3a Generación
Orientados a los problemas
Orientados a los problemas
Orientados a objetos
Orientados a objetos
Orientados a procedimientos
Orientados a procedimientos
Lenguajes empresariales
Lenguajes científicos
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
• Lenguajes orientados al procedimientoLenguajes orientados al procedimiento.- Los lenguajes orientados al procedimiento requieren que los programadores resuelvan problemas de programación utilizando la lógica de programación tradicional; esto es, los programadores codifican o escriben las instrucciones en la secuencia en que deben ejecutar para solucionar el problema. Se dividen en:
– Lenguajes empresarialesLenguajes empresariales. Los 3GL orientados a las empresas se diseñan para ser instrumentos efectivos para desarrollar sistemas de información empresarial. La fuerza de la 3GL empresariales consiste en su capacidad de almacenar, recuperar y manejar datos alfanuméricos.
• COBOLCOBOL, el primer lenguaje de programación empresarial, se introdujo en 1959. Este lenguaje sigue siendo el mas popular. La intención original del os creadores del COBOL (Common Bussines Oriented Language; lenguajes común orientado a la empresa) era hacer que sus instrucciones se aproximan al inglés.
Generaciones: 3a, Lenguajes orientados a procedimiento.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
– Lenguaje científicosLenguaje científicos. Estos lenguajes del tipo de una formula algebraica están diseñado en particular para satisfacer las necesidades de procedimientos repetitivo, la expresión y la solución de ecuaciones matemáticas y demás operaciones pertinentes.
• FORTRANFORTRAN. (Formula Translator), el primer lenguaje orientado a procedimientos, se desarrollo en 1955. Fue y sigue siendo el lenguaje científico más popula.
• APLAPL. (A Programming Language un lenguaje de programación), introducido en 1968, es un lenguaje de programación interactivo que es común entre los ingenieros, matemáticos y científicos. Un tablero especial con símbolos “taquigráficos” ayuda a la rapidez del proceso de cifrado.
Generaciones: 3a, Lenguajes orientados a procedimiento.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
• Otros lenguajes orientados al procedimientoOtros lenguajes orientados al procedimiento. El análisis anterior de los lenguajes al procedimiento no pretende ser exhaustivo. Entre estos se incluyen los siguientes:
– LISPLISP ( List Processing [procesamiento de listas], 1959). Un lenguaje de procesamiento de listas eficiente para el manejo de datos no numéricos, tales como símbolos y texto (se utiliza en el desarrollo de la inteligencia artificial y los compiladores).
– LOGOLOGO (1967). Hace uso de una “tortuga” para enseñar a los niños geometría, matemáticas y programación.
– FORTHFORTH (1971). Se utiliza para aplicaciones de control de dispositivos, juegos de video y robótica.
– PrologProlog (Programming in Logic [programación en lógica], 1972. Es capaz de manejar relaciones entre hechos ( se utiliza en el desarrollo de sistemas expertos).
– Modula-2Modula-2 (1981). Permite combinar módulos independientes en un programa.
Generaciones: 3a, Lenguajes orientados a procedimiento.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
• Lenguajes de la cuarta generaciónLenguajes de la cuarta generación (4GL, fourth-generation languages ). Son de alto nivel y amigables; los programadores profesionales que utilizan 4GL sostienen que experimentan incrementos en la productividad de 200 a 1,000% en comparación con los lenguajes orientados al procedimiento de la tercera generación (COBOL, FORTRAN, BASIC y demás ). Hay dos tipos de 4GL:
Lenguaje de 4a Generación.T
écn
ica.
com
Lenguajes de 4a Generación
Lenguajes de 4a Generación
Orientados al usuario
Orientados al usuario
Orientados a la producción
Orientados a la producción
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
– Lenguajes de la cuarta generación orientados a la producciónLenguajes de la cuarta generación orientados a la producción. Los lenguajes de la cuarta generación orientados a la producción están diseñados sobre todo para profesionales en la computación, quienes usan 4GL como el Ideal de ADR, el Natural 2 de Software AG y el Mantis de Cincom.
– Lenguajes de la cuarta generación orientados al usuarioLenguajes de la cuarta generación orientados al usuario. Los usuarios escriben programas para consultar (extraer información ) de una base de datos y para crear sistemas de información personales o departamentales. Los lenguajes de la cuarta generación orientados al usuario incluyen el RAMIS II de Mathematica Products Group y el FOCUS de Information Builders.
Lenguaje de 4a Generación.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
Capacidades de los 4GL.T
écn
ica.
com
Fuente: “Análisis y modelación de bases de datos relacionales”, Técnica.Com, José F. Ramírez. D.R.Fuente: “Análisis y modelación de bases de datos relacionales”, Técnica.Com, José F. Ramírez. D.R.
Debe tener integrado un manejador de base de datos Debe contar con un reporteador basado en objetos Debe haber independencia total entre los datos y las aplicaciones Debe contar con un diccionario o repositorio de datos Debe proporcionar apoyo para un esquema de seguridad por
usuarios Debe contar con un lenguaje de rastreo basado en ejemplos (Query
By Example) Debe hacer hincapié en el modelo de datos y no en la programación
del código Debe poseer herramientas para la fácil documentación de análisis,
diseño, y modelo de datos.
Ejemplos: Ejemplos:
Informix, Progress, Sisinf.
Desventajas: Desventajas:
Requieren conocimientos especializados y su operación requiere personal calificado (lo cual es caro). Su precio como producto también es caro.
La tecnología CASECASE busca automatizar el proceso de ingeniería de software, propiamente el desarrollo, de tal manera que los términos conceptuales sirvan para generar los términos formales. Especificar el qué, para que la computadora se encargue del cómo.
Se espera que en un futuro no muy lejano, las actividades de desarrollo de sistemas estén simplificadas al máximo, dejando a cargo del recurso humano aquellos aspectos creativos que requieran el human touchhuman touch..
Computer Aided Software Engineering (CASE)T
écn
ica.
com
Fuente: Curso en línea “Analisis y modelación de bases de datos”, Técnica.Com, José F. Ramírez. D.R.Fuente: Curso en línea “Analisis y modelación de bases de datos”, Técnica.Com, José F. Ramírez. D.R.
Nichos de mercado para las herramientas CASE.T
écn
ica.
com
Fuente: Inteligent Software Systems Development, an IS Manager’s Guide, Wiley & Sons, Inc., Paul Harmon and Curtis HallFuente: Inteligent Software Systems Development, an IS Manager’s Guide, Wiley & Sons, Inc., Paul Harmon and Curtis Hall
Mantenimiento Desarrollo tradicional Técnicas nuevas
Mainframe
Equipo
Tendencia de herramientas
Productos
Estaciones de trabajo UNIX
PC & MAC
PC/MACCASE Tools
Herramientas CASE Técnicas
Herramientas CASE de tipo OO y Knowledge System Based.
Herramientas Reverse Engineering
Herramientas CASE para Mainframe
CASE inteligenteMetodologías estructuradas y generación de código COBOL
Documentación y estructuras
Tipos de productos CASE.T
écn
ica.
com
Upper CASE ToolsUpper CASE Tools (Herramientas de análisis y diseño).
Lower CASE ToolsLower CASE Tools (Generadores de código, generadores de interfaz).
4GL4GL (Generadores de aplicaciones que no dependen de una metodología).
i-CASEi-CASE (Productos integrados, Upper & Lower CASE).
CASE de dominio específicoCASE de dominio específico (Herramientas para el desarrollo de tipos específicos de aplicaciones).
Meta-CASEMeta-CASE (Herramientas para desarrollar herramientas CASE).
Herramientas de administración del proceso de Herramientas de administración del proceso de desarrollodesarrollo (Lifecycle Managment Tools).
Fuente: Inteligent Software Systems Development, an IS Manager’s Guide, Wiley & Sons, Inc., Paul Harmon and Curtis HallFuente: Inteligent Software Systems Development, an IS Manager’s Guide, Wiley & Sons, Inc., Paul Harmon and Curtis Hall
Alcance de los productos CASE (Método tradicional).T
écn
ica.
com
Fuente: Inteligent Software Systems Development, an IS Manager’s Guide, Wiley & Sons, Inc., Paul Harmon and Curtis HallFuente: Inteligent Software Systems Development, an IS Manager’s Guide, Wiley & Sons, Inc., Paul Harmon and Curtis Hall
AnálisisDiseño
ProgramaciónPruebas e implementación Mantenimiento
Upper CASE
Lower CASE
Herramientas 4GL
i-CASE
Herramientas CASE de dominio específico
Meta CASE
Lifecycle Managment Tools
• La habilidad de operar computadoras utilizando instrucciones habladas o tecleadas en la forma común y corriente, como lo hacemos de manera natural, ha sido un sueño perseguido por usuarios y desarrolladores de software.
• El término Lenguajes NaturalesLenguajes Naturales se refiere al software que permite que los sistemas de información acepten, interpreten y ejecuten instrucciones en el lenguaje materno o “natural” del usuario final, casi siempre el inglés.
• La premisa implícita en un lenguaje natural es que el programador o el usuario necesita poca o ninguna capacitación. El programador sólo escribe, o tal visualiza, las especificaciones del procedimiento sin tomar en cuenta la sintaxis (las reglas que se observan para la formulación de las instrucciones).
• Otro término bastante aceptado de lenguaje natural es “todos los elementos computacionales, incluyendo hardware y software, que de cierta forma procesan entradas a través de lenguaje natural”.
Lenguaje Natural.T
écn
ica.
com
Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.
¿Cómo opera el lenguaje natural?.T
écn
ica.
com
Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.
El programa analiza laentrada del usuario
De acuerdo a un modelo, sederiba una representación
interna no ambigua
El programagenera una salida
Entendimiento del Lenguaje Natural Generación de Lenguaje Natural
Entrada Tecleada
Datos Electrónicos
Entrada Hablada (Reconocimiento de Voz)
Salida Tecleada
Datos Electrónicos
Salida Hablada (Generación de Voz)
Consideraciones de la EntradaConsideraciones de la Entrada• Restringida / No restringida
• Sintaxis y Vocabulario
• Hablado Continuo o Discreto
La forma más compleja de entrada es la que implica entrada hablada, ya que se requiere el uso de tecnología de reconocimiento de voz; en la actualidad dicha entrada es restringida (sólo se pueden ordenar ciertas cosas), con sintaxis y vocabulario limitado, y utilizando un hablado discreto (breves pausas entre palabras).
Entrada y salida en Lenguaje NaturalT
écn
ica.
com
Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.
Descompone los fonemas en palabras.
Agrupa las palabras en sentencias con significado.
Reconoce la estructura de la sentencia.
Compara la entrada con el modelo interno y determina una representación interna libre de ambigüedad.
Interpreta el sentido de la sentencia en el marco contextual en que se encuentra.
Reconoce el objeto del usuario (lo que quiso decir) y prepara una respuesta apropiada.
Interpretando y entendiendo la entradaInterpretando y entendiendo la entrada
Reconoce el objeto del usuario (lo que quiso decir) y prepara una respuesta apropiada.
Utiliza la representación interna libre de ambigüedad y genera un mensaje apropiado de salida.
Determina la forma apropiada de la sentencia en que debe ser dicho el mensaje.
Organiza la estructura de la sentencia.
Genera las palabras que son necesarias para la sentencia.
Genera los fonemas que crean el texto hablado.
Generando salidaGenerando salida
Arquitectura de un sistema de consulta basado en LN.T
écn
ica.
com
Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.Fuente: “Intelligent Software systems Development, an IS Manager’s Guide”, Paul Harmon & curtis Hall, Wilwy & Sons.
¿Cuántos artículos 2453 se vendieron en marzo de 1999?
1: Se identifican las palabras y se seccionan en componentes con significado.
Sólo persisten palabras y frases reconocidas.
Parser
Diccionario
Conceptos registrados
Se genera representación interna
(#Ventas, A2453, M03, Y1999)
2: Se genera un modelo interno libre de ambigüedades, en representación interna del lenguaje.
Interprete
Base de Datos
Conocimiento de Dominio
Interfaz de base de datos
Generador de lenguaje
Se vendieron 300 unidades de 2453.
3: El interprete analiza el modelo interno y genera la consulta de bases de datos.
Select count(Venta.cveart) from Ventas where month(Ventas.fventa) = 03 and year (Ventas.fventa) = 1999
4: La interfaz interactua con la BD, considerando el lenguaje de la empresa (Dominio).
• Las aplicaciones basadas en Lenguaje NaturalLenguaje Natural más comunes son:
– Font-End de base de datos basados en Lenguaje Natural.-Font-End de base de datos basados en Lenguaje Natural.- Convierten requerimientos tecleados en lenguaje natural, que son traducidos a estatutos SQL y consultas.
– Categorización de texto, Análisis de contenidos, y sistemas de recuperación de Categorización de texto, Análisis de contenidos, y sistemas de recuperación de datos.-datos.- Análisis contextual de texto, para búsqueda y recuperación de información.
– Sistemas de traducción.-Sistemas de traducción.- Sistemas de traducción de lenguajes; de uno a otro.
– Programas de edición de Texto.-Programas de edición de Texto.- Análisis gramatical de las frases.
– TalkWriters.-TalkWriters.- Llamados programas de dictado.
Aplicaciones del lenguaje naturalT
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
Clasificaciones de los lenguajes (en el tiempo).T
écn
ica.
com
Natural
Generador de Aplicaciones
4GL Orientados a producción. 4GL Orientados al usuario.
Orientados a objetos
Orientados a problemas
Empresariales CientíficosOrientados a procedimientos
Ensamblador
Máquina1GL1GL
2GL2GL
3GL3GL
4GL4GL
Bajo Bajo NivelNivel
Alto Alto NivelNivel
Muy Muy Alto Alto NivelNivel
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
Bobrow y Stefik definen un estilo de programación como un medio de organización de programas sobre la base de algún modelo conceptual de programación y un lenguaje apropiado para hacer programas en un estilo claro.
Ellos sugieren cuatro estilos básicos de programaciónestilos básicos de programación:
Orientado a procedimientos (basados en algoritmos).
Orientados a objetos (basados en clases y objetos).
Orientados a lógica (expresado en cálculo de predicados).
Orientados en reglas (basado en reglas if - then).
Estilos de programación, según Bobrow y Stefik.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
La programación estructuradaprogramación estructurada se emplea desde la década de los setenta; llamada también técnica descendente o de refinamiento sucesivo, comienza descomponiendo un programa en piezas manejables más pequeñas, conocidas como funciones (subrutinas, subprogramas, procedimientos), que realizan tareas menos complejas.
Programación orientada a procedimientos (Programación Estructurada).
Téc
nic
a.co
m
Funciones
Funciones Funciones
Funciones Funciones
Variables Locales
Variables globales
Variables Locales
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
La Orientación a ObjetosOrientación a Objetos puede describirse como el conjunto de disciplinas (ingeniería) que desarrollan y modelizan software que facilita la construcción de sistemas complejos a partir de componentes, llamados objetos.
En la programación orientada a objetos todo se organiza en torno a los objetos.
Un objeto tiene un nombre y posee datos y procedimientos. En cierto sentido, un objeto es un programa virtual.
Dado ciertos datos de entrada, el objeto aplica los procedimientos sobre dichos datos y genera una salida.
Orientación a Objetos.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
Los 4 elementos más impotrantes de este modelo son los siguientes: AbstracciónAbstracción.- Propiedad que permite representar las características escenciales de un
objeto, sin preocuparse de las características no escenciales.
EncapsulamientoEncapsulamiento.- Propiedad que permite asegurar que el contenido de la información de un objeto está oculta al mundo exterior: el objeto A no conoce lo que hace el objeto B, y viceversa.
ModularidadModularidad.- Propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible, de la aplicación en sí y de las restantes partes.
JerarquíaJerarquía.- Es una propiedad que permite una ordenación de las abstracciones. Las dos jerarquías más importantes de un sistema complejo son: estructura de clases is-a (generalización/especialización), y estructura de objetos part-of (agregación).
Orientación a Objetos.T
écn
ica.
com
Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.Fuente: “Introducción a las computadoras y al procesamiento de información”, Larry Long, Prentice Hall.
La jerarquía de generalización/especialización se conoce como herencia.
Básicamente la herencia define la relación entre clases, en donde una clase comparte la estructura o comportamiento definido en una o más clases (herencia simple o herencia compuesta, respectivamente).
La agregacíón es el concepto que permite el agrupamiento físico de estructuras relacionadas lógicamente.
El Poliformismo es la propiedad que indica, literalmente la posibilidad de que una entidad tome muchas formas.
Orientación a Objetos.T
écn
ica.
com
Fuente: “Information Systems: Management Principles in Action”, Wysocki & Young, Wiley & Son’s.Fuente: “Information Systems: Management Principles in Action”, Wysocki & Young, Wiley & Son’s.
Los objetos y su jerarquía.T
écn
ica.
com
Animal
Mamífero
ConejoZorra
Huye de lasZorras
Caza conejos
BugsMovimiento
Pelaje
SangreCaliente
Peso (kg)
Saltos
Gris
Sí
2.3
Huye de lasZorras
FredMovimiento
Pelaje
Sangre Caliente
Peso (kg)
Corre
Rojo
Sí
20.5
Caza conejos
Instancia
Movimiento
Pelaje
SangreCaliente
Fuente: “Intelligent Software Systems Development: an IS Managers Guide”, Paul Harmon & Curtis Hall, Wiley & Son’s.Fuente: “Intelligent Software Systems Development: an IS Managers Guide”, Paul Harmon & Curtis Hall, Wiley & Son’s.
Taxonomía de lenguajes OO de Wegner.T
écn
ica.
com
Lenguajes basados Lenguajes basados en objetoen objeto
Ada - 83 Actor Clipper 5.x
Basados en clasesBasados en clases
CluOrientado a objetosOrientado a objetos
C++ Eiffel Simula SmallTalk Turbo Borland Pascal Delphi Visual Objects Visual COBOL Ada - 95
+ Clases
+ Herencia
Fuente: “Intelligent Software Systems Development: an IS Managers Guide”, Paul Harmon & Curtis Hall, Wiley & Son’s.Fuente: “Intelligent Software Systems Development: an IS Managers Guide”, Paul Harmon & Curtis Hall, Wiley & Son’s.