Tendencias de Desarrollo del Software Guía 01 - Inicio

Anuncio
Tendencias de Desarrollo del Software
Guía 01 - Inicio
8
A partir de tal información, el sistema proporcionará un esquema que incluya el orden
de evaluación que genere una solución, sin requerir para lograrla, la descripción de
etapas a seguir como en el caso procedimental.Dado que estos paradigmas especifican la solución sin indicar cómo construirla, en
principio eliminan la necesidad de comprobar que el valor generado es la solución, ya
que el programador adopta solo aquellas verdades, hechos, restricciones o reglas que
definen el problema a resolver, por lo que, si la especificación fué realizada
meticulosamente, cualquier solución obtenida será necesariamente válida.
Paradigma orientado a objetos.
Uno de los paradigmas más modernos, mas estudiados y que da origen y desarrolla
otra serie de paradigmas alternos (aspectos, restricciones, métodos, valores, etc.).
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es
un paradigma de programación que usa los objetos en sus interacciones, para diseñar
aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo
herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de los años 1990 y se desarrollo por la
OMG (Object Management Group) con el fin de mejorar la calidad del software
producido y la reutilización de código/software.
En la actualidad, existe gran variedad de lenguajes de programación que soportan la
orientación a objetos. Un lenguaje completamente orientado a objetos es Smalltalk.
EL más conocido y el más utilizado es JAVA.
Ámbito de los Sistemas OO
La propuesta moderna de todos los sistemas de programación se centra en
reutilización de componentes de software, algo similar a desarrollar repuestos para
las máquinas y vehículos de hardware pero en el terreno de la lógica con códigos de
programación empaquetados en componentes.
Algunos de los paradigmas modernos en programación:

Computación en la nube

Programación imperativa

Programación lógica

Programación funcional

Programación declarativa

Programación estructurada

Programación dirigida por eventos

Programación modular

Programación orientada a aspectos

Programación orientada a objetos

Programación con restricciones

Programación a nivel funcional (John Backus)

Programación a nivel de valores (John Backus)

Programación orientada a componentes
www.dariolara.com
Guía 01 - Inicio
Tendencias de Desarrollo del Software
5
Paradigmas de Desarrollo del Software
Introducción
El término paradigma significa «ejemplo» o «modelo».
En todo el ámbito científico, religioso u otro contexto epistemológico, el
término paradigma puede indicar el concepto de esquema formal de organización, y
ser utilizado como sinónimo de marco teórico o conjunto de teorías.
En lingüística, Ferdinand de Saussure ha usado paradigma para referirse a una clase
de elementos con similitudes. El término tiene también un significado en el terreno de
la psicología refiriéndose a aceptación de ideas, pensamientos, creencias incorporadas
generalmente durante nuestra primera etapa de vida que se aceptan como
verdaderas o falsas sin ponerlas a prueba de un nuevo análisis.
En su forma más simple para proviene de mas allá y digma se puede asimilar a
conocimiento, y por tanto la definición mas elemental: mas alla del conocimiento
actual, esto es conocimiento que hay que reevaluar continuamente.
Paradigmas de programación
Un paradigma está constituido por los supuestos teóricos generales, las leyes y las
técnicas para su aplicación que adoptan los miembros de una determinada comunidad
científica.
Componentes
 « Leyes y Supuestos Teóricos
 « Instrumental y Técnicas Instrumentales.
 « Principios metafísicos generales que guían el accionar.
Ej.: Leyes de movimiento de Newton (Paradigma Newtoniano)
Son marcos de referencia, pueden ser considerados patrones de pensamiento
para la resolución de problemas.
Paradigma
Un paradigma de programación es entonces una forma de representar y manipular el
conocimiento. Representa un enfoque particular o filosofía para la construcción del
software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.
También hay situaciones donde un paradigma resulta más apropiado que otro.
Tipos de Paradigmas de Programación
 « Paradigma Imperativo
 « Paradigma Procedimental
 « Paradigma Declarativo
 « Paradigma Funcional y Lógico
 « Paradigma Demostrativo
 « Paradigma Orientado a Objetos
Paradigma de Programación Imperativo
El paradigma imperativo es considerado el más común basado en ordenes
secuenciales y está representado, por ejemplo, por lenguajes como Fortran, Cobol o
por el lenguaje Basic de los 70s..
www.dariolara.com
Tendencias de Desarrollo del Software
Guía 01 - Inicio
6
Paradigma Procedimental
El paradigma procedimental es considerado un sistema muy simple que basa su
conjunto de códigos en procedimientos en secuencia y puede recurrir a librerías o
funciones similares basado en ordenes secuenciales y está representado por lenguajes
estructurados o semiestructurados como C o Pascal ....
Paradigma Declarativo
La Programación Declarativa, en contraposición a la programación imperativa es
un paradigma
de
programación que
está
basado
en
el
desarrollo
de programas especificando o "declarando" un conjunto de condiciones,
proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que
describen el problema y detallan su solución.
La solución es obtenida mediante mecanismos internos de control, sin especificar
exactamente cómo encontrarla (tan sólo se le indica a la computadora qué es lo que
se desea obtener o qué es lo que se está buscando). No existen asignaciones
destructivas.
Diferencia entre imperativo y declarativo
« En la programación imperativa se describe paso a paso un conjunto de instrucciones
que deben ejecutarse para variar el estado del programa y hallar la solución, es decir,
un algoritmo en el que se describen los pasos necesarios para solucionar el problema.
« En la programación declarativa las sentencias que se utilizan lo que hacen es
describir el problema que se quiere solucionar, pero no las instrucciones necesarias
para solucionarlo. Esto último se realizará mediante mecanismos internos de
inferencia de información a partir de la descripción realizada.
Paradigma Funcional
En ciencias de la computación, la programación funcional es un paradigma de
programación declarativa basado en la utilización de funciones aritméticas que no
maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste
con el estilo de programación imperativa, que enfatiza los cambios de estado. La
programación funcional tiene sus raíces en el cálculo lambda, un sistema formal
desarrollado en los 1930s para investigar la definición de función, la aplicación de las
funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser
vistos como elaboraciones del cálculo lambda.
Los lenguajes de programación funcional, especialmente los que son puramente
funcionales, han sido enfatizados en el ambiente académico principalmente y no tanto
en el desarrollo de software comercial. Sin embargo, lenguajes de programación
importantes basados en LISP (List Procesor) tales como Scheme, Erlang, Objective
Caml y Haskel, han sido utilizados en aplicaciones comerciales e industriales por
muchas organizaciones.
Paradigma lógico
La programación lógica es un tipo de paradigmas de programación dentro del
paradigma de programación declarativa. El resto de los subparadigmas de
programación dentro de la programación declarativa son: programación
funcional, programación con restricciones, programas DSL (de dominio específico) e
híbridos. La programación funcional se basa en el concepto de función
www.dariolara.com
Guía 01 - Inicio
Tendencias de Desarrollo del Software
7
(que no es más que una evolución de los predicados), de corte más matemático. La
programación lógica gira en torno al concepto de predicado, o relación entre
elementos.
Campos de aplicación
La programación lógica encuentra su hábitat natural en aplicaciones de inteligencia
artificial (IA) o relacionada, los Sistemas expertos (SE), donde un sistema de
información imita las recomendaciones de un experto sobre algún dominio de
conocimiento y las Redes Neuronales (RN) que intentan simular la complejidad de un
cerebro.
Algunos campos:

Demostración automática de teoremas, donde un programa genera nuevos
teoremas sobre una teoría existente.

Reconocimiento de lenguaje natural, donde un programa es capaz de
comprender (con limitaciones) la información contenida en una expresión
lingüística humana.
La programación lógica también se utiliza en aplicaciones más "mundanas" pero de
manera muy limitada, ya que la programación tradicional es más adecuada a tareas de
propósito general.
La lógica matemática es la manera más sencilla, para el intelecto humano, de expresar
formalmente problemas complejos y de resolverlos mediante la aplicación de reglas,
hipótesis y teoremas. De ahí que el concepto de "programación lógica" resulte
atractivo en diversos campos donde la programación tradicional es un fracaso.
Lenguajes lógicos
El lenguaje de programación lógica por excelencia es Prolog, que cuenta con diversas
variantes. La más importante es la programación lógica con restricciones (véase
artículo sobre programación con restricciones), que posibilita la resolución
de ecuaciones lineales además de la demostración de hipótesis.
Paradigma Demostrativo
En este modelo, denominado también como PARADIGMA POR EJEMPLO, el
programador en lugar de especificar procedimentalmente como lograr una solución,
propone soluciones de problemas similares y permite al sistema que GENERALICE una
solución procedimental a partir de tales demostraciones.
Las alternativas para generalizar tales soluciones abarcan desde simular una secuencia
procedimental hasta inferir intenciones, de manera que los sistemas que infieren,
intentarán generalizaciones basadas en el razonamiento del conocimiento.
En este modelo, una solución basada en la inferencia tratará de determinar por una
parte los aspectos similares, un grupo de datos u objetos y a partir de estos
generalizar estas similitudes.
Paradigma de definición
Bajo este paradigma, un programa se diseña señalando hechos, reglas, restricciones,
ecuaciones, transformaciones y otras propiedades del conjunto de valores que con
figuran la solución.
www.dariolara.com
Descargar