lunes, 16 de mayo de 2011

Visual FoxPro

Visual FoxPro es un lenguaje de programación orientado a objetos y procedural, un Sistema Gestor de Bases de datos o Database Management System (DBMS), y desde la versión 7.0, un Sistema administrador de bases de datos relacionales, producido por Microsoft.

Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos para el escritorio, entornos cliente/servidor, tablet PC o para la Web.
Entre sus características se pueden enumerar:
  • Capacidades poderosas y muy veloces para el manejo de datos nativos y remotos.
  • Flexibilidad para crear todo tipo de soluciones de bases de datos.
  • Lenguaje de Programación Orientado a objetos.
  • Utilización de Sentencias SQL en forma nativa.
  • Poderoso manejo de vistas, cursores y control completo de estructuras relacionales.
  • Su propio gestor de base de datos incorporado. Sin embargo, también puede conectarse con servidores de base de datos, tales como Oracle, Microsoft SQL Server o MySQL.
  • Cuenta con un motor de generación de informes renovado y muy flexible para soluciones más robustas.
  • Desde la versión 9.0, amplio soporte de XML, tanto como fuente de datos (por ej., servicios Web basados en XML) como por generar reportes en formato XML.
  • Desde la versión 7.0, soporte de la tecnología IntelliSense de Microsoft.

La última versión liberada es la 9.0.
Se planeó inicialmente la salida de una nueva versión llamada 'Sedna', la cual pretendía ser un poderoso y completo lenguaje interactuando aún más con VisualStudio.net, SQLServer2005, SQLExpress2005 y Office12, teniendo a su vez soporte para Windows Vista. Posteriormente se supo que no habrá una próxima versión (Mensaje a la comunidad VFP). Microsoft ha cancelado su desarrollo y lanzó lo que han hecho hasta ahora como add-ons en conjunto con el service pack 2 ambos por el momento en versión Beta (SP2 y "Sedna" - Beta). Igualmente, según las políticas de soporte de Microsoft, éste continuará dando soporte al producto hasta el año 2015.
Hay un movimiento MasFoxPro que está haciendo presión para que Microsoft continúe o deje el Visual FoxPro como código abierto para que otra gente pueda seguir evolucionándolo.
La versión 9.0 de Visual FoxPro cuenta con el SP1 y el (más reciente) SP2 (en inglés) en los que hay algunas nuevas características y especialmente brindan estabilidad al producto

sábado, 2 de abril de 2011

Introducción al Microsoft Access

El  Microsoft Access es un software utilizado para el desarrollo de sistemas de Base de Datos, basado en el argumento de las bases de datos relacionales, en el cual el usuario/proyectista mantiene informaciones organizadas de forma tabular. No es el objetivo de esta apostilla, detallar una metodología de análisis de sistemas orientado a la especificación de soluciones basadas en el argumento relacional. Normalmente este proceso de análisis y reflexión, previos al de la construcción, constituyen pasos importantes para la obtención de buenos sistemas automatizados de almacenamiento y recuperación de informaciones.
A lo largo del texto, se emplea un ejemplo/modelo muy simple basado en apenas tres tablas. Lo que se desea automatizar es una nómina de empleados donde, además de las informaciones típicas de nombre y número, participan informaciones asociadas referentes al departamento del empleado, su cargo y su salario.

Todos los contenidos de una Base de Datos en Access son reunidos en un único archivo de extensión mdb.
Para abrir una Base de Datos Basta seleccionar el archivo de la pantalla de diálogo del menú Archivo opción Abrir Base de Datos.

Para crear una nueva Base de Datos:
  1. Haga clic en Nueva de la barra de herramientas.
  2. En el panel de tareas Nuevo Archivo, bajo Nueva, haga clic en Base de datos en blanco.
  3. En el cuadro de diálogo Archivo nueva base de datos, especifique un nombre y una ubicación para la base de datos y, a continuación, haga clic en Crear.

El Access también crea un archivo de extensión lbd. Este archivo tiene utilidad en habientes multiusuarios donde una misma Base de datos puede estar siendo accedida simultáneamente por varios usuarios. Si este no fuera el caso, entonces no es necesario preocupare con este archivo. Inclusive no es necesario copiar el archivo conjuntamente con el archivo de extensión mdb, por ejemplo para un disco, pues si se llegara a precisar mas tarde el Access recreará el archivo ldb si él no estuviera presente.
Conviene observar que en el menú Archivo se cuenta con la opción Guardar,  ella no se refiere al archivo mdb, esta opción sirve para guardar objetos aislados del Access tales como: Tablas, formularios, consultas, informes y macros. Esto significa que a lo largo de una sesión, el archivo mdb es constantemente actualizado y no es posible revertirlo a su condición original al inicio de la cesión.




viernes, 1 de abril de 2011

Lenguaje (Lenguaje Unificado de Modelado) UML

Es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.
Es importante resaltar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo.
Se puede aplicar en el desarrollo de software entregando gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar.
UML no puede compararse con la programación estructurada, pues UML significa Lenguaje Unificado de Modelado, no es programación, solo se diagrama la realidad de una utilización en un requerimiento. Mientras que, programación estructurada, es una forma de programar como lo es la orientación a objetos, sin embargo, la programación orientada a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos.
UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas

En UML 2.0 hay 13 tipos diferentes de diagramas. Para comprenderlos de manera concreta, a veces es útil categorizarlos jerárquicamente, como se muestra en la figura de la derecha.
Los Diagramas de Estructura enfatizan en los elementos que deben existir en el sistema modelado:
  • Diagrama de clases
  • Diagrama de componentes
  • Diagrama de objetos
  • Diagrama de estructura compuesta (UML 2.0)
  • Diagrama de despliegue
  • Diagrama de paquetes
Los Diagramas de Comportamiento enfatizan en lo que debe suceder en el sistema modelado:
  • Diagrama de actividades
  • Diagrama de casos de uso
  • Diagrama de estados
Los Diagramas de Interacción son un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:
  • Diagrama de secuencia
  • Diagrama de comunicación, que es una versión simplificada del Diagrama de colaboración (UML 1.x)
  • Diagrama de tiempos (UML 2.0)
  • Diagrama global de interacciones o Diagrama de vista de interacción (UML 2.0)
 

martes, 22 de marzo de 2011

Modelos de Graficas Booleanas

Primitivas

 

Los diferentes programas de modelado (edición 3D) que se usan para crear los escenarios y personajes de animación, incorporan entre sus herramientas la posibilidad de crear objetos a partir de superficies y sólidos elementales.

Algunos elementos geométricos son la base del modelo que se expone: esfera, plano, cilindro, cono, toro …
Estos elementos básicos son los denominados “primitivas gráficas” y mediante operadores se agrupan para construir elementos mucho más complejos como se verá posteriormente.




Vemos la superficie de un objeto y no su interior; si utilizamos operaciones booleanas deberemos pensar en el volumen y diferenciar entre la superficie o “frontera” del objeto y el volumen que éste ocupa.

 

Por ejemplo, en un plano la frontera vendrá determinada por los bordes o aristas del polígono que lo representa ya que el plano no tiene volumen. Sin embargo, en una esfera, la frontera del objeto es su superficie, pasándose a llamar “contorno” la curva que la encierra cuando la representamos en una imagen.

Planos, superficies y volúmenes

La primitiva más sencilla es el triángulo. A partir de este elemento geométrico se generan superfícies con diferentes grados de complejidad. Por ejemplo, con dos triángulos podemos formar un rectángulo plano, con varios que compartan un centro un polígono (que aproxime o simule una circunferencia), etc.




Si construimos una superficie formada por triángulos que comparten los vértices y la cerramos podemos considerar el volumen como lo que hay en “el interior” de la frontera que forma la superficie.

Una esfera puede aproximarse mediante una forma poliédrica, y mediante técnicas de renderizado (interpolaciones) obtener imágenes con formas suavizadas.


El modelo geométrico puede dar lugar a diferentes representaciones. modificando la percepción del objeto

En la segunda visualización, el poliedro adopta una apariencia de esfera gracias al modelo de visualización, sin embargo el contorno de la forma es el mismo.

Este contorno poligonal degrada la percepción de la forma esférica. Para corregirlo es necesario aumentar el número de caras del poliedro.


La nueva aproximación a la superficie esférica mejora la visualización a costa de aumentar el volumen de superficies para incluir en los cálculos de la imagen. El volumen de la esfera también se aproxima mejor, permitiendo una edición más detallada del modelo.

Operaciones Booleanas

Objetos como la esfera, el cilindro, cono etc, pueden ser definidos de forma análoga, obteniéndose volúmenes básicos denominados como hemos dicho “primitivas gráficas”.
El volumen de estos objetos se puede caracterizar con una ley simple, por ejemplo:

Un punto del espacio es interior a un volumen si no existe ninguna recta que pase por el punto y no corte a la frontera (superficie). Si existe al menos una, es exterior.
Las operaciones booleanas se basan en los modelos que se estudian con el álgebra de Boole. Los conceptos de suma, resta, parte común etc. son los empleados en esta técnica de modelizado de sólidos.

Suma

Al sumar dos volúmenes, el volumen total es inferior a la suma de sus volúmenes, ya que hay una parte común entre los elementos.




Si sumamos por ejemplo una esfera y un cubo, el objeto resultante ocupará el espacio que ocupan los dos elementos; los puntos interiores a alguno de ellos serán por lo tanto puntos del objeto resultante de la suma.

Distinguiremos entre diferentes volúmenes o regiones del espacio en este ejemplo:
  • Exterior: Puntos que no son interiores a ningún objeto.
  • Interior: Puntos que son interiores a uno o a los dos objetos.
La nueva frontera del objeto suma, utiliza partes de las fronteras de los elementos primitivos como se observa en la imagen.

Intersección

 

La intersección de dos objetos se conoce también como “parte común”. Está formada por los elementos que son interiores a los dos objetos que se usen en la operación.

De nuevo las fronteras son formadas por partes de las dos fronteras implicadas.

Diferencia

Las dos operaciones anteriores se realizan independientemente del orden en que se definan los elementos. Sin embargo la diferencia no tiene esta propiedad conmutativa. No es lo mismo quitarle el volumen A al cuerpo B, que quitarle B al A.


La operación booleana “B – A”, es decir, obtener la diferencia entre B y A, es equivalente a decir “quitarle a B la parte común entre B y A”.

Si al cubo le quitamos la esfera, obtenemos un volumen menor, pero mayor que la diferencia de volúmenes, ya que las partes de la esfera que no están en contacto con el cubo no pueden restarse.

 

La diferencia entre restar un elemento a otro, o invertir el orden de los objetos en la operación es notoriamente distinta.

Normalmente indicaremos el objeto que perdura y a continuación el que restamos, aunque puede depender de la implementación en cada programa.

Si quieres ver un ejemplo de construcción usando esta técnica, mira

viernes, 18 de marzo de 2011

Algebra Booleana

El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario " º " definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana.
            Para cualquier sistema algebraico existen una serie de postulados iniciales, de aquí se pueden deducir reglas adicionales, teoremas y otras propiedades del sistema, el álgebra booleana a menudo emplea los siguientes postulados:
  • Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si para cada par de valores booleanos se produce un solo resultado booleano.
  • Conmutativo. Se dice que un operador binario " º " es conmutativo si A º B = B º A para todos los posibles valores de A y B.
  • Asociativo. Se dice que un operador binario " º " es asociativo si (A º B) º C = A º (B º C) para todos los valores booleanos A, B, y C.
  • Distributivo. Dos operadores binarios " º " y " % " son distributivos si A º (B % C) = (A º B) % (A º C) para todos los valores booleanos A, B, y C.
  • Identidad. Un valor booleano I se dice que es un elemento de identidad con respecto a un operador binario " º " si A º I = A.
  • Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " º " si A º I = B, y B es diferente de A, es decir, B es el valor opuesto de A.
 
Leyes fundamentales
El resultado de aplicar cualquiera de las tres operaciones definidas a variables del sistema booleano resulta en otra variable del sistema, y este resultado es único.
1. Ley de idempotencia:
 a \cdot a = a \,
 a + a = a \,
2. Ley de involución:
 \overline {\bar {a}} = a
3. Ley conmutativa:
 a \cdot b = b \cdot a \,
 a + b = b + a \,
4. Ley asociativa:
 a \cdot (b \cdot c) = (a \cdot b ) \cdot c\,
 a + (b + c) = (a + b ) + c \,
5. Ley distributiva:
 a \cdot (b + c) = (a \cdot b) + (a \cdot c) \,
 (a + b ) \cdot c = (a \cdot c) + (b \cdot c) \,
 a + (b \cdot c) = (a + b) \cdot (a + c) \,
 (a \cdot b ) + c = (a + c) \cdot (b + c) \,
 a + \bar {a} \cdot b = a + b \,
6. Ley de cancelación:
 (a \cdot b) + a= a \,
 (a + b) \cdot a= a \,
7. Ley de identidad:
 a + 0 = a \,
 a + 1 = 1 \,
 a \cdot 1 = a \,
 a \cdot 0 = 0 \,
 \overline {(a + b)}= \bar {a} \cdot \bar {b} \,
 \overline {(a \cdot b)} = \bar {a}+ \bar {b} \,


lunes, 21 de febrero de 2011

Funciones Booleanas

Son funciones cuyo dominio son por los valores binarios  “falso y “verdadero” respectivamente,  y cuyo condominio son ambos valores 0 y 1. 
 
También existen las funciones booleanas regulares, estas son unas funciones booleanas  particulares ya que toman en cuenta el ordenamiento en sus distintos parámetros, Estas funciones son útiles en muchas áreas de la matemática aplicada, tales como la programación logica, teoría de hipergrafos, teoría de juegos, entre otros, donde son equivalentes a clases particulares de formas normales disyuntivas, hipergrafos minimales y juegos con pesos respectivamente.

Existen diferentes formas de representar una funcion booleanael uso de una u otra dependerá de las necesidades concretas en cada caso, podemos destacar las siguientes:

Algebraica: Se utiliza cuando se realizan operaciones algebraicas.Ejemplo:

a) F = [(A + BC’)’ + ABC]’ + AB’C
b) F = A’BC’ + AB’C’ + AB’C + ABC’
c) F = (A + B + C)(A + B + C’)(A + B’ + C’)(A’ + B’ + C’)
d) F = BC’ + AB’
e) F = (A + B)(B’ + C’)
f) F = [(BC’)’(CB)´ (AB’)’]’
g) F = [(A + B)’ + (B’ + C’)’]’
  
Tabla de Verdad: Una tabla de verdad contiene todos los valores posibles de una función lógica dependiendo del valor de sus variables. Una función lógica puede representarse algebraicamente de distintas formas como acabamos de ver, pero sólo tiene una tabla de verdad. Ejemplo: la siguiente tabla corresponde a la función lógica del punto anterior

A B C F
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0

Numérica: La representación numérica es una forma simplificada de representar las expresiones canónicas. Si consideramos el criterio de sustituir una variable sin negar por un 1 y una negada por un 0, podremos representar el término, ya sea una suma o un producto, por un número decimal equivalente al valor binario de la combinación. Ejemplo: los siguientes términos canónicos se representarán del siguiente modo (observe que se toma el orden de A a D como de mayor a menor peso):
AB’CD = 10112 = 1110
A’ + B + C’ + D’ = 01002 = 410
Gráfica: La representación gráfica es la que se utiliza en circuitos y esquemas electrónicos. Ejemplo: la siguiente figura se representan gráficamente dos funciones algebraicas, una con símbolos no normalizados, superior, y la otra con normalizados

Representación gráfica de dos funciones lógicas

miércoles, 16 de febrero de 2011

Compuertas Logicas

Una compuerta logica es un circuito cuya operación puede ser definida por una función de algebra logica.

Tabla de la verdad: Para entender de que se tratan las compuertas logicas es nescesario primero que es la tabla de la verdad, ya que esta se emplea mucho en las tecnicas digitales, la tabla de la verdad, es una tabla que despliega el valor de una verdad de una preposición compuesta, su aplicación fundamental es cuando se construye un sistema logico que modeliza el lenguaje natural sometiéndolo a unas reglas de formalización del lenguaje.

Ya sabido que es la tabla de la verdad ahora veamos de que se tratan las compuertas logicas basicas:

Compuerta NOT: Esta compuerta invierte los datos de entrada, por ejemplo: si pones su entrada a 1 (nivel alto) obtendrás en su salida un 0 (o nivel bajo), y viceversa.

 
Esta compuerta dispone de una sola entrada. Su operación lógica es "s" igual a "a" invertida.

Compuerta AND: Esta compuerta tiene dos entradas como minimo  y su operación lógica es un producto entre ambas, no es un producto aritmético, aunque en este caso coincidan.

Compuerta OR: Al igual que la anterior posee dos entradas como mínimo y la operación lógica, será una suma entre ambas... Bueno, todo va bien hasta que 1 + 1 = 1, el tema es que se trata de una compuerta O Inclusiva es como a y/o b, esto quiere decir basta que una de ellas sea "1" para que su salida sea también "1"
Compuerta OR-EXCLUSIVA: Es OR EXclusiva en este caso con dos entradas, aunque puede tener mas, y lo que hará con ellas será una suma lógica entre a por b invertida y "a" invertida por "b".
 

domingo, 6 de febrero de 2011

Circuitos Logicos

¿Qué es la electrónica?

Los circuitos logicos son los que forman la base de cualquier dispositivo en el que se tengan que seleccionar o combinar señales de manera controlada. Entre los campos de aplicación de estos tipos de circuitos pueden mencionarse la conmutación telefonica, las transmiciones por satelites y el funcionamientos de las computadoras digitales


Los circuitos logicos se utilizan para adoptar  deciciones especificas de "verdadero-falso" sobre la base de la presencia de múltiples señales "verdadero-falso" en las entradas.

Las señales se pueden generar desde dispositivos de red mecanicos(conmutadores) o transductores de estado solido.

http://www.profesormolina.com.ar/electronica/componentes/int/sist_comb/image032.jpg
( Figura ) Síntesis del circuito combinacional mediante puertas lógicas

En general,  para ejecutar una determinada funcion es necesario conectar grandes cantidades de elementos logicos en circuitos complejos. En algunos casos se utilizan microprocesadores para efectuar muchas de las funciones de conmutación y temporización de los elementos lógicos individuales. La desventaja de los microprocesadores es que normalmente funcionan de manera secuencial, lo que podría resultar demasiado lento para algunas aplicaciones, en tales casos se emplean circuitos lógicos especialmente diseñados.