CONTABILIDAD - REPORTES

SISTEMA DE CONTABILIDAD Y REPORTE

Introducción:

Sistema de contabilidad es una estructura organizada mediante la cual se recogen las informaciones de una empresa como resultado de sus operaciones, valiéndose de recursos como formularios, reportes, libros etc. y que presentados a la gerencia le permitiran a la misma tomar decisiones financieras.
Un sistema de contabilidad no es mas que normas, pautas, procedimientos etc. para controlar las operaciones y suministrar información financiera de una empresa, por medio de la organización, clasificación y cuantificación de las informaciones administrativas y financieras que se nos suministre.
Para que un sistema de contabilidad funcione eficientemente es preciso que su estructura-configuración cumpla con los objetivos trazados. Esta red de procedimientos debe estar tan intimamente ligada que integre de tal manera el esquema gral de la empresa que pueda ser posible realizar cualquier actividad importante de la misma


a) Panorama General

El proyecto tiene por objeto diseñar un sistema de contabilidad que mejorara el tratamiento de toda la información financiera de la empresa, para así ofrecer un mayor grado de confiabilidad respecto a la información preparada.

b) Metas

En términos generales, la meta es mejorar el manejo de la información financiera de la empresa, para ofrecer información confiable, verificable, razonable, útil y oportuna preparada por el especialista en la materia y siendo colaborado por el sistema a ser diseñado e implementado. Concretamente, la meta incluye:
-          Mayor facilidad para la preparación de los comprobantes de contabilidad (ingreso, egreso, traspaso)
-          Obtener una base de datos confiable sobre la información financiera de la empresa.
-          Control apropiado de la información y reportes preparados por el departamento de contabilidad.
-          Facilitar la preparación de reportes financieros para la empresa en cualquier momento.

c) Funciones del Sistema

Para diseñar un adecuado sistema de contabilidad que permita llevar el control de todas las transacciones de una organización, se necesita realizar las siguientes funciones básicas o fundamentales:
  • Ordenar y archivar los datos de la documentación que respalda las operaciones contables.
  • Clasificar la información, para determinar en qué parte del balance de aplicarán las operaciones: en activo, en pasivo, en patrimonio, en ingresos o en egresos.
  • Registrar las operaciones contables en los libros autorizados.
  • Informar sobre los resultados obtenidos en las transacciones de la organización, en un período determinado.

Funciones Básica o Elemental:
Referencia
Función
Categoría
R1.1
Se debe seleccionar la fecha y el Tipo de Cambio oficial para introducir la transacción (información financiera).
Evidente
R1.2
Se debe seleccionar el tipo de Comprobante Contable (Ingreso, egreso, traspaso) en el cual se introducirá la información.
Evidente
R1.3
Se introducen los datos del documento en el cual se encuentra la transacción que se realizo.
Evidente
R1.4
El sistema guarda de manera automática la información introducida en una base de datos
Oculto
R1.5
Se seleccionan las cuentas afectadas por las operaciones de la empresa del plan de cuentas elaborado cuando se diseño el sistema.
Evidente
R1.6
Se realiza una suma de los datos para determinar su exactitud.
Oculto
R1.7
Se graba la Información en la base de datos del sistema.
Evidente
R1.8
El sistema genera el Modelo del Comprobante que se realizo
Oculto
R1.9
Se determina si se imprimirá o no el Comprobante de Contabilidad que se realizo para tener un respaldo físico de la operación.
Evidente
Funciones para la preparación de reportes
Referencia
Función
Categoría
R2.1
El contador solicita que se genere un balance de comprobación de sumas y saldos a la fecha para la preparación de los reportes financieros
Evidente
R2.2
El sistema realiza la suma de todas las transacciones realizadas a la fecha determinada y mayoriza (clasifica) las cuentas de acuerdo a su grupo (Activo, Pasivo, Patrimonio, Ingresos, Egresos).  
Oculto
R2.3
Se pide la generación de reportes (Estados Financieros), de acuerdo a los requerimientos de quien lo solicite.
Evidente
R2.4
El sistema genera y prepara el reporte que debe ser realizado
Oculto
R2.5
Se determina si el Reporte emitido por el sistema será impreso o no.
Evidente


d) Atributos

Atributo
Detalles y restricciones de frontera
Tiempo de restricción
(Restricción de frontera) Cuando se registre una transacción (operación financiera), el detalle de la misma aparece en un comprobante aproximadamente en un segundo.
Metáfora de Interfaz
(Detalle) Ventanas orientadas a la metáfora de formularios y cuadros de diálogo.
(Detalle) Maximiza una navegación fácil con teclado y no con mouse.
Tolerancia a fallas
(Restricción de frontera) Algunos errores cometidos en la introducción de la información no podrán ser modificados por el sistema y se deberá acudir a modificar directamente la base de datos.
Plataformas del Sistema Operativo
(Detaille) Microsoft Windows 95, 98, 2000 y XP.

Ref.
Función
Categoría
Atributo
Detalles y Restricciones
Categoría
R2.3
Se pide la generación de reportes (Estados Financieros), de acuerdo a los requerimientos de quien lo solicite.
Evidente
Tiempo de respuesta
1 segundo como máximo
Obligatorio



Metáfora de Interfaz
Pantallas basadas en formularios.
Con colores
Obligatorio
R2.2
Se registra la suma de todas las transacciones realizadas a la fecha determinada y mayoriza (clasifica) las cuentas de acuerdo a su grupo (Activo, Pasivo, Patrimonio, Ingresos, Egresos).  
Oculto
Tolerancia a Fallas
Algunos errores cometidos en la introducción de la información no podrán ser modificados por el sistema y se deberá acudir a modificar directamente la base de datos.
Obligatorio



Tiempo de Respuesta
10 segundos como máximo
Obligatorio

Caso de uso:
Recolección e introducción de la información.
Actores:
Gerente de Compras, Gerente de Ventas, Contador,
Tipo:
Primario y esencial.
Propósito:
Recolectar  e introducir  la información que el departamento de contabilidad requiera para la generación de reportes financieros.
Resumen:
El contador solicita la información necesaria a los departamentos o gerencias de compras para tener un registro en las operaciones financieras que realizo la empresa hasta una determinada fecha.
Tipo:
Primario.
Referencias
cruzadas:
Funciones: R1.3, R1.7, R1.9, R2.1, R.2.3, R2.4, R2.5.
Descripción:
El contador solicita la información necesaria a los departamentos o gerencias de compras y ventas, para poder obtener un registro de las operaciones financieras que se llevo a cabo por  la empresa hasta una determinada fecha.
La siguiente figura muestra de diagrama de casos de uso.



Caso de uso:
 Generación de reportes financieros.

Actores:
Gerente general, Gerente financiero, Contador,

Tipo:
Primario

Propósito:
Generar reportes Financieros (Estados financieros) confiables, útiles, oportunos, razonables y sobre todo verificables, generados en el departamento de contabilidad con ayuda del sistema.

Resumen:
Los gerentes encargados de manejar la situación financiera de la empresa pueden solicitar reportes financieros en cualquier momento para ver la situación en la cual se encuentra la empresa en el aspecto financiero.

Tipo:
Primario.

Referencias
cruzadas:
Funciones: R1.1, R1.2, R1.3, R1.4, R1.5, R.1.7, R2.1, R.2.3.

Descripción:
Los gerentes necesitan conocer la información en cualquier momento, para ver la situación en la cual se encuentra la empresa en el aspecto financiero, por lo que necesitan un reporte financiero sin errores, sabiendo esto el encargado de contabilidad debe generar dicha información.


La siguiente figura muestra de diagrama de casos de uso.

MODELO CONCEPTUAL:

Paquetes:

Diagrama de Secuencia:
Contratos:
Contrato

Nombre:
IntroducirDatos(Fecha:cadena,Detalle:cadena,Debe:numero,Haber:número)
Responsabilidades:
(Registrar) la transacción donde Se debe seleccionar la fecha y el Tipo de Cambio oficial para introducir la información financiera.
Tipo:
Sistema.
Referencias
cruzadas:
Funciones del sistema: R1.1, R1.2, R1.3.

Casos de uso:
Recolección e introducción de la información.
Notas:
Utilizar acceso súper-rápido a la base de datos.
Excepciones:
Si el código no es válido, indicar que se cometió un error.
Precondiciones:
El sistema conoce la cuenta efectuada.
Pos condiciones:
· Si se trata de una nueva transacción, se crea una Cuenta (creación de instancia).
· Si se trata de una nueva transacción, la nueva cuenta fue asociada a Balance (asociación  formada).
· Se creó una instancia de Cuenta (creación de instancia).
· Se asignó cantidad a Cuenta (modificación de atributo).
· Se asoció una instancia Cuenta a la instancia EspecificacióndeBalance, basado en la correspondencia del cantidad (asociación formada).


Contrato

Nombre:
Compilación (Comprobante Contable: cadena)
Responsabilidades:
(Validar) la transacción y se debe seleccionar el tipo de Comprobante Contable (Ingreso, egreso, traspaso) en el cual se introducirá la información.
Tipo:
Sistema.
Referencias
cruzadas:
Funciones del sistema: R1.1, R1.2, R1.3.

Casos de uso:
Recolección e introducción de la información.
Notas:
Utilizar acceso súper-rápido a la base de datos.
Excepciones:
Si el código no es válido, indicar que se cometió un error.
Precondiciones:
El sistema conoce la cuenta efectuada.
Pos condiciones:
· Si se trata de una nueva transacción, se crea una Cuenta (creación de instancia).
· Si se trata de una nueva transacción, la nueva cuenta fue asociada a Balance (asociación  formada).
· Se creó una instancia de Cuenta (creación de instancia).
· Se asignó cantidad a Cuenta (modificación de atributo).
· Se asoció una instancia Cuenta a la instancia EspecificacióndeBalance, basado en la correspondencia del cantidad (asociación formada).


Contrato

Nombre:
AgrupaciónSumaDatos (Cuenta:cadena,Tipo:número)
Responsabilidades:
(Registrar) la suma de todas las transacciones realizadas a la fecha determinada y mayoriza (clasifica) las cuentas de acuerdo a su grupo (Activo, Pasivo, Patrimonio, Ingresos, Egresos).  
Tipo:
Sistema.
Referencias
cruzadas:
Funciones del sistema: R1.5, R1.6, R2.2.

Casos de uso:
Recolección e introducción de la información.
Notas:
Utilizar acceso súper-rápido a la base de datos.
Excepciones:
Si el código no es válido, indicar que se cometió un error.
Precondiciones:
El sistema conoce la cuenta efectuada.
Pos condiciones:
· Si se trata de una nueva transacción, se crea una Cuenta (creación de instancia).
· Si se trata de una nueva transacción, la nueva cuenta se suma sus saldos y se los trasfiere al Balance (asociación  formada).
· Se asignó cantidad a Cuenta (modificación de atributo).
· Se asoció una instancia Cuenta a la instancia EspecificacióndeBalance, basado en la correspondencia suma (asociación formada).


Contrato

Nombre:
ReporteFinancieros(EspecificaciondeBalance:cadena:número)

Responsabilidades:
Genera y prepara el reporte que debe ser realizado
Tipo:
Sistema.
Referencias
cruzadas:
Funciones del sistema: R2.3, R2.4, R2.5.

Casos de uso:
Generación de reportes financieros.
Notas:
Utilizar acceso súper-rápido a la base de datos.
Excepciones:
Si el código no es válido, indicar que se cometió un error.
Precondiciones:
El sistema conoce la cuenta efectuada.
Pos condiciones:
· Se creó una transacción Compilación(creación de instancia)
· Se asignó  AgrupaciónSumaDatos(modificación de atributo)
· Se asoció la cuenta a EspecificacióndeBalance, basado en la correspondencia de la cantidad (asociación formada).

Diagrama de Estado:

RECOLECCIÓN E INTRODUCCIÓN DE LA INFORMACIÓN

GENERACIÓN DE REPORTES FINANCIEROS


Diagrama De Colaboración:
Los diagramas de colaboración explican gráficamente las interacciones entre las instancias del modelo (objetos).
Los diagramas de interacción constituyen una de las herramientas más importantes para el análisis y diseño orientado a objetos. El tiempo y esfuerzo dedicado a la preparación de éstos, corresponde a un porcentaje considerable de la actividad total del proyecto.
Un sistema orientado a objetos se compone de objetos que envían mensajes a otros objetos para que lleven a cabo ciertas operaciones. Cada clase de objetos tiene ciertas responsabilidades, que son cumplidas a través de sus métodos, y por la forma en que colabora con las otras clases de objetos.
Decisiones poco acertadas sobre la asignación de responsabilidades de cada clase, dan origen a sistemas y componentes frágiles y difíciles de mantener, entender, reutilizar o extender.
Veremos algunos patrones que se pueden aplicar durante la elaboración de los diagramas de interacción, al asignar las responsabilidades a los objetos y al diseñar la colaboración entre ellos.


El patrón Experto:

Nombre:
Experto.
Problema:
¿Cuál es el principio fundamental en virtud del cual se asignan las responsabilidades en el diseño orientado a objetos?
Un modelo de clase puede definir docenas y hasta cientos de clases de software, y una aplicación tal vez requiera el cumplimiento de cientos o miles de responsabilidades. Durante el diseño orientado a objetos, cuando se definen las interacciones entre los objetos, se toman decisiones sobre la asignación de responsabilidades a clases. Si se hace en forma adecuada, los sistemas tienden a ser más fáciles de entender, mantener y ampliar, y se nos presenta la oportunidad de reutilizar los componentes en futuras aplicaciones.

Solución:
Asignar una responsabilidad al experto en información: la clase que cuenta con la información necesaria para cumplir la responsabilidad.

Beneficios:
Se conserva el encapsulamiento, ya que los objetos se valen de su propia información para hacer lo que se les pide. Esto provee un bajo nivel de acoplamiento, lo que favorece el hecho de tener sistemas más robustos y de fácil mantenimiento.

El comportamiento se distribuye entre las clases que cuentan con la información requerida, lo que ayuda a definir clases "sencillas" y más cohesivas, que son más fáciles de comprender y mantener.

Desde el punto de vista del patrón Experto, deberíamos buscar la clase de objetos que posee la información necesaria para saber los resultados financieros.


Todavía no terminamos. ¿Qué información hace falta para determinar el subtotal de la línea de productos? Se necesitan Cuenta y EspecificaciondeBalance.
Cuenta conoce su cantidad y su correspondiente EspecificaciondeBalance. Por tanto, desde la perspectiva del patrón Experto, Cuenta debería calcular el subresultado.
Cuenta no puede cumplir la responsabilidad de conocer y dar el subresultado, si no conoce el detalle de la transacción. EspecificaciondeBalance es un Experto en información para contestar su detalle.


En conclusión, para cumplir con la responsabilidad de conocer y dar el reporte de las transacciones, se asignaron tres responsabilidades a las tres clases de objetos:
Clase
Responsabilidad
Balance
Conoce los resultados financieros
Cuenta
Conoce la transacción realizada
EspecificaciondeBalance
Conoce el detalle da las cuentas

El patrón Creador :

El patrón Creador guía la asignación de responsabilidades relacionadas con la creación de objetos, tarea muy frecuente en los sistemas orientados a objetos. El objetivo de este patrón es encontrar un creador que debemos conectar con el objeto producido en cualquier evento.

Nombre:
Creador.
Problema:
¿Quién debería ser responsable de crear una nueva instancia de alguna clase?

La creación de objetos es una de las actividades más frecuentes en un sistema orientado a objetos. En consecuencia, conviene contar con un principio general para asignar las responsabilidades concernientes a ella. El diseño, bien asignado, puede apoyar un bajo acoplamiento, una mayor claridad, el encapsulamiento y la reutilización.

Solución:
Asignarle a la clase B la responsabilidad de crear una instancia de la clase A en uno de los siguientes casos:

· B agrega los objetos de A.
· B contiene los objetos de A.
· B registra las instancias de los objetos de A.
· B tiene los datos de inicialización que serán enviados a A cuando este objeto sea creado (B es un experto respecto a la creación de A).
B es un creador de los objetos A. Si existe más de una opción, prefiera la clase B que agregue o contenga la clase A.

Beneficios:
Se brinda apoyo a un bajo acoplamiento, lo cual supone menos dependencias respecto al mantenimiento y mejores oportunidades de reutilización.



Realizando este análisis se da que para que un Balance pueda ser presentado mediante un reporte contiene (en realidad, agrega) muchas Cuenta (s). Es por esto que el patrón Creador sugiere que un  Balance es la clase idónea para asumir la responsabilidad de crear las instancias de Cuenta. Esta asignación de responsabilidades requiere definir en Balance un método para hacerLineaCuenta.
 
El patrón Controlador:

Nombre:
Controlador.
Problema:
¿Quién debería encargarse de atender un evento del sistema?

Un evento del sistema es un evento de alto nivel generado por un actor externo. Es un evento de entrada externa. Se asocia a operaciones del sistema: las que se emiten en respuesta a los eventos del sistema.
Un controlador es un objeto de interfaz que se encarga de manejar un evento del sistema. Define además el método de su operación.

Solución:
Asignar la responsabilidad del manejo de mensajes de los eventos del sistema a una clase que represente alguna de las siguientes opciones:

· El "sistema" global (controlador de fachada).
· La empresa u organización global (controlador de fachada).
· Algo en el mundo real que es activo (por ejemplo el rol de una persona) y que pueda participar en la tarea (controlador de tareas).
· Un manejador artificial de todos los eventos del sistema de un caso de uso (controlador de casos de uso).

Utilice la misma clase controlador con todos los eventos del sistema en el mismo caso de uso.

Beneficios:
Garantiza que la empresa o los procesos de dominio sean manejados por la capa de los objetos del dominio y no por la interfaz.



Durante el análisis del comportamiento del sistema, sus operaciones son asignadas al tipo Sistema, para indicar que son operaciones del sistema.
 

Pero esto no significa que una clase llamada Sistema las ejecuta durante el diseño. Durante el diseño, a la clase Controlador se le asigna la responsabilidad de las operaciones del sistema.
Según el patrón Controlador, disponemos de las siguientes opciones:


ReporteFinanciero
Representa el "sistema" global.
Balance
Representa la información general del estado de la empresa.
Contador
Representa algo en el mundo real que está activo (por ejemplo el rol de una persona) y que puede intervenir en la tarea.
ManejadordeReporteFinanciero
Representa un manejador artificial de todas las operaciones del sistema de un caso de uso.


Las operaciones del sistema, detectadas en el análisis, se asignarán a Balance.