Site hosted by Angelfire.com: Build your free website today!
Idioma: Inglés | Francés | Alemán | Portugués | Español  

Principal
Información General
  Funcionalidades
  Capturas de pantalla
  Capturas de pantalla Beta
  El Camino en Frente
  Requerimientos Aplicacionales
Descargas
  @ linas.org
  @ gnucash.org
  SourceForge
  Australia
Información para Programadores
  Arquitectura del Sistema
  Objetivos del Proyecto
  Contribuir
  Listas de E-Mail
  Notas de Error Gnome
  Navegar en el código fuente
  Modificar el GnuCash
Otra Información
  Aplicaciones financieras relacionadas
  GnuCash en las noticias
  Promover el GnuCash
  Historia
  Apoyo Empresarial
Documentación
  English
  Español
  Français
  Português
Buscar

Método de ordenación:

Visión General de la Arquitectura

GnuCash está escrito principalmente en de los lenguajes: C y Scheme. El servidor/motor está escrito en C principalmente para mayor velocidad, portabilidad, estabilidad y motivos históricos. La mayoríia del código de trabajo en el día a día está escrito en Scheme, principalmente por su poder, expresividad y facilidad de desarrollo. La interface de usuario es gtk/gnome, algo de ello hecho en C, algo en scheme, y otro en la herramienta de desarrollo gráfico glade.

El GnuCash es modular, permitiendo así que varios individuos mantengan, desarrollen y mejoren algunos módulos sin perturbar la totalidad del desarrollo. (Nunca se olvide que los módulos ayudam a evitar código spaghetti y feas modificaciones martilladas). Las interfaces entre módulos están documentadas, y , en su mayoría, estables e inmutables. Este diagrama de bloques muestra sus principales componentes. El GnuCash consiste actualmente en los siguientes módulos:

Módulo
Descripción
  Motor

El Motor (localizado debajo del directorio src/engine en la estructura de código del GnuCash) disponibiliza una interface para crear, manipular, y destruir tres entidades financieras básicas: Cuentas, Transacciones (conocidas como Entradas de Registro en la contabilidad profesional), y Parcelas (conocidas como Detalles de Registro). Estas tres entidades son las estructuras de datos centrales del modelo de datos financiero del GnuCash, tal como se ilustra en este diagrama.

El código del Motor no posee cualquier código de Interface Gráfico, y es esencialmente neutral al nivel del SO. Está escrito en su totalidad en C.

  Consulta

El módulo de Consulta (src/engine/Query.*) disponibiliza una interface para el motor para encontrar transacciones basadas en un conjunto de criterios, tales como la descripción , fecha de entrada, filiación de cuenta, etc. Consultas simples pueden ser combinadas utilizando operadores booleanos estándar.

  I/O (Lectura/Escritura) de Archivos

El módulo de I/O de Archivos (src/engine/FileIO.*) disponibiliza una interface para leer y escribir un conjunto de Cuentas, Transacciones, y Parcelas para un archivo binário. Este módulo está por ser abandonado. Un formato basado en texto utilizando formularios scheme está por ser desarrollado en su remplazo. Este nuevo módulo será separado del motor.

  Registro

El Registro (src/register) implementa una interface tipo libro de entrada que permite al usuario introducir dinámicamente fechas, precios, anotaciones, etc. de una forma intuitiva que deberá ser obvia para cualquiera que esté habituado a utilizar el registro de un libro de cheques. El código es muy configurable, permitiendo que las filas y columnas del registro sean dispuestas de cualquier forma, sin restricciones a la función, tipo y número de columnas/filas. Por ejemplo, se puede definir una hoja de registro com tres campos de fecha, un campo de precio, y cuatro campos de anotaciones de una forma simple. Objetos de gestión de celdas soportan y validan los datos introducidos automáticamente, sean fechas, anotaciones (que se completan automáticamente), precios, cajas de combo (menús de selección ), y cajas de selección multi-estado. Las celdas pueden ser marcadas para lectura y escritura, o apenas lectura. Se puede asignar colores exclusivos a las celdas. La fila del registro seleccionada actualmente puede ser destacada con un color único.

El código del registo es completamente independiente del código del motor, no sabe nada sobre contabilidad o cualquiera de los otros subsistemas del GnuCash. Puede ser utilizado en proyectos independientes que no tengan nada que ver con contabilidad.

 

Informes (Reportes/Relatorios)

El módulo de Informes (Reportes/Relatorios) (src/scm/report.scm, src/scm/reports) es un sistema basado en scheme (guile) para crear hojas de balance, demonstraciones de pérdidas y ganancias, etc. utilizando la API del motor para obtener y presentar datos formateados en HTML.

Este módulo va a ser rediseñado para utilizar la API de Consultas para obtener la información del motor en vez de utilizar directamente la interface del motor. El nuevo diseño de informes irá a utilizar las Consultas para extraer datos y agregarlos en un formato independiente de la visualización. Estos datos serán entonces convertidos a informes en HTML y /o gráficos tales como gráficos de barras o circulares.

  Gráficos

El módulo de Gráficos va a ser en el futuro un módulo que implementa gráficos tales como barras y circulares. Estos gráficos serán interactivos por lo que el usuario podrá , por ejemplo, mover las margenes del círculo, y 'vivos' en el sentido en que el usuario podrá hacer click en una subsección del gráfico para ver un gráfico detallado o informe de esa subsección en particular.

Este módulo será implementado utilizando la biblioteca GUPPI que se encuentra en desarrollo por Jon Trowbridge (<http://www.gnome.org/guppi>).

  Cotizaciones

El módulo de Cotizaciones (src/quotes) es un sistema en Perl para obtener cotizaciones de acciones de Internet e insertarlas en el Motor del GnuCash. Este módulo requiere las funcionalidades del módulo Finance::Quote disponible en el SourceForge. El módulo Finance::Quote module puede obtener cotizaciones de varios locales diferentes incluyendo el Yahoo, Yahoo Europe, y algunas bolsas de valores internacionales.

El módulo Finance::Quote también soporta la obtención de tasas de cambio monetarias. El GnuCash será extendido para permitir la obtención y utilización de tasas de cambio monetarias.

  Preferencias del usuario

El módulo de Preferencias del usuario (src/scm/options.scm, src/scm/prefs.scm) disponibiliza una infraestructura para definir las preferencias configurables por el usuario e internas. Las preferencias son definidas en scheme utilizando varios tipos de preferencias predefinidas tales como booleana, texto, fecha, etc. Las preferencias son 'implementadas' disponibilizando una interface gráfica que permite al usuario ver y modificar los valores de las preferencias. Una API es disponibilizada para consultar los valores de las preferencias y para registrar llamadas de alerta (callbacks) que serán invocadas cuando las preferencias fuesen alteradas.

Los valores de las preferencias que difieren de los valores por defecto son almacenados como formularios scheme en archivos de preferencias específicos al usuario (~/.gnucash/config.auto). Este archivo es cargado automáticamente durante el arranque.

  Importación QIF

El módulo de Importación QIF (src/scm/qif-import) disponibiliza funcionalidades para importar datos QIF (Quicken Interchange Format - Formato de Intercambio Rápido) para el GnuCash.

  GnuCash

El módulo GnuCash (src/gnome, src/register/gnome y src/*.[ch]) es la interface gráfica principal de la aplicación. Consiste en una colección de varios códigos de interface gráfica para juntar todas las piezas sobre un todo coherente. Se espera que sea fácil de utilizar e intuitivo para el usuario novato sin sacrificar el poder y flexibilidad que un profesional deberá esperar. Cuando las personas dicen que el GnuCash va a intentar ser semejante en "aspecto/funcionalidades/comportamiento al Quicken o MS Money", es a esta pieza que se refieren. Está realmente diseñado para ser un gestor de finanzas personales con poder suficiente para el usuario experto y simple de utilizar para el novato.

Actualmente, la interface Gnome es la única interface operacional. Existe una interface obsoleta en Motif que no va a ser mantenida. El código Qt no compilará, y la mayoría/ todas las funcionalidades están por implementar.

Copyright® 2001 Proyecto GnuCash