Friday, May 27, 2011

Paradigmas de programación

La programación es una forma de decirle a las máquinas que ejecuten las operaciones que queremos. Estas operaciones se realizan mediante un determinado lenguaje que depende del programa que se use. Además estos programas tienen distintas técnicas en las que se puede programar. La técnica más usada es la programación estructurada.

La programación estructurada actualmente está muy relacionada con la programación modular, por lo que se toma la misma como parte de la estructurada. En este tipo de programación se realiza el programa de una forma muy fácil, ya que se usan pocas estructuras y las más básicas: secuencia, iteración y selección. Esto ofrece cualidades frente a otros métodos en cuanto que los programas son más fáciles de entender al no tener que estar haciendo tantos brincos a otros saltos de línea. Los programas suelen ser mucho más sencillos y rápidos en cuanto a su ejecución, y además los errores son más fáciles de encontrar y corregir ya que los bloques de código generalmente son auto explicativos.

Como ejemplos de lenguajes de programación estructurados tenemos:

· Pascal.

· ALGOL o Algorithmic Languaje.

· GaCeLa.

También está la programación orientada a objetos que se basa en el uso de objetos para realizar los programas. Se utilizan varias técnicas para programar con objetos como la herencia, abstracción, polimorfismo y encapsulamiento. Además de que también se pueden usar las mismas técnicas de la programación estructurada.

Algunos lenguajes de programación orientados a objetos son:

· C++.

· Python.

· Java.

La programación funcional como su nombre lo indica se basa exclusivamente en funciones matemáticas. Aunque existe un tipo que se le llama programación funcional hibrido que si hace uso secuencias por instrucciones o asignación de variables. Estos programas tienden a ser mucho más elegantes ya que en la mayoría de las veces las líneas de código son más cortas y concretas que dan una mayor facilidad para la ejecución y depuración del programa.

Ejemplos de lenguajes funcionales:

· Haskell.

· Miranda.

· Lisp.

Otro paradigma de programación es aquel que está orientado a eventos. Este se basa en la interfaz gráfica y dependiendo de las acciones del usuario se crean acciones en el programa. Entonces el programa siempre tiene que estar dispuesto a saber cuál es la acción que va a realizar el usuario.

Como ejemplos de programas basados en eventos están:

· Javascript.

· Lexico.

· Visual C#.

La programación orientada a aspectos intenta modularizar las aplicaciones para tener una mejor separación de tareas. De esta forma los módulos disminuyen la dependencia entre sí. Algunas terminologías propias del lenguaje son Aspect que en programación orientada a objeto sería similar a un Objeto, Join Point, Advice, Pointcut, Proxy, Weaving, entre otros.

Ejemplos de programas basados en aspectos:

· AspectJ.

· Aspect.

· Aspyct AOP.

Existe una gran variedad de paradigmas de programación. Muchos pueden poseer cosas de otras, mientras que algunos no tienen nada en común. No existe un paradigma que sea el mejor dado que cada uno tiene por lo menos una cualidad especifica. Solo hay que saber a dónde se quiere llegar para determinar cuál puede ser el mejor tipo de programación que se puede utilizar.

Sunday, May 1, 2011

Steve, the animal collector.

Hi! Welcome to my blog. This is my first post and i'm trying to help Steve.

Steve is a lover of animals. He collects spiders, cats and fishes, so he is trying to make a program to help to manage his collection.
The first information is that the spiders, cats and fishes are animals. Every animal has a number of legs (8, 4 and 0 respectly). This let me to build the main classes like that:


In the chart, I created an Abstract class called Animal and it has only one atribute(integer legs). The operations are the Constructor, the get and set of legs. The other three classes are the spider, fish and cat. They also has their own Constructors.

Another information is that generaly an animal can walk and eat, even though each one do it in a different way. This information tell me that in the program they have two more operations and they could be different for each animal. That's the reason for the animal class is abstract.

Cats and Fishes are given a name and both are pets. Spiders are not named and neither do considered pets. Each pet could be named and play with him. Pets play in a different form and we could know which is their name.

Now is needed a new class, the pet class. It's conformed by Fishes and Cats. They need an atribute name and the operations getName, setName and play. The class diagram is taking that form:The last thing is that Steve may have many animals. This allow me to know that an Animal list is going to be used. And it also need some operations: Add, Read, Update and Delete. The constructors of the list are atached to the class too.

The Complete Diagram class of the program.
Steve's Animals.