Visão Geral do Sistema

Sistema de Gestão de Empresas do Terceiro Setor

O Any3 é um software completo que permite o registro contábil de toda a movimentação financeira/contábil de empresas do Terceiro Setor, seja ela uma Fundação, Associação, Instituto, Organizações Não Governamentais (ONGs), APLs, OSCs, Instituto, Igreja ou Associação. Através dele é possível acompanhar os recursos financeiros/contábeis de projetos, sejam eles fomentados com recursos públicos ou privados.

Arquitetura

O sistema é concebido seguindo o padrão Modell-View-Controller (MVC), em português modelo-visão-controlador, é um padrão de arquitetura de software (design pattern) que separa a representação da informação da interação do usuário com ele.

No padrão MVC há separação das tarefas de acesso aos dados e de interação com o utilizador, introduzindo um componente entre os dois: o Controller (ver Figura abaixo).

A camada Cliente, também chamada de visão, é a camada de apresentação. É responsável pela interação com os atores do sistema, seja um usuário que irá visualizar os informações de clientes ou um administrador que irá atribuir funções aos usuários do sistema. Em outras palavras, essa camada é a interface utilizada pelo usuário.

Ela implementa o modelo MVC, que utiliza uma classe controladora para cada página. O controlador recebe e trata as requisições vindas da visão, chama o modelo (que aqui é representado pelo domínio, negócio e persistência) e passa a requisição tratada para o modelo. Ao receber a resposta do modelo, renderiza (desenha a tela) ou constrói a visão adequada. Ela interage com o modelo através da camada de negócio, transferindo e recebendo dados encapsulados em classes que representam o domínio da aplicação. Para maior interatividade sem a necessidade de carregamento pesado no servidor utilizará AJAX (acrônimo para Asynchronous JavaScript and XML).

Já a camada Negócio gerencia o fluxo de dados da aplicação, além da lógica de manipulação dos mesmos. Ela intermedia a comunicação da interface com o banco de dados e é também responsável por implementar regras de negócio, fazendo requisições à camada de persistência e enviando respostas à camada de apresentação.

Por fim, a camada Dados provem acesso às informações armazenadas no Sistema Gerenciador de Banco de Dados (SGDB). Cada classe de domínio possui uma classe de acesso aos dados equivalente, onde são tratadas todas as interações com o SGDB.

A exceção a regra são métodos básicos de manutenção de cadastros, conhecidos pela sigla CRUD (Create, Retrieve, Update, Delete – Criar, Recuperar, Atualizar, Excluir). Esses métodos utilizarão uma classe genérica comum a todas as tabelas que exijam manutenção. Esta classe implementa o padrão de projeto DAO (Data Access Object) para realizar o mapeamento objeto-relacional.

Linguagem de Programação

A linguagem de programação escolhida para o desenvolvimento da aplicação é o C# (lê-se “C Sharp”) com .NET Framework versão 4.0. O .NET Framework é um modelo de programação de código gerenciado da Microsoft para criar aplicativos nas mais diversas plataformas. Entre os seus principais benefícios pode-se citar:

  • Facilidade de desenvolvimento, instalação e distribuição de aplicações;
  • Alta escalabilidade para ambientes de missão crítica;
  • Tecnologia baseada em máquina virtual;
  • Biblioteca de acesso a dados nativos para os principais bancos de dados;
  • Permite desenvolver aplicações para Windows, Web, SmartPhones, Console, Banco de Dados, Serviços Windows, Web Services e outros; e
  • 100% (cem por cento) Orientada a objetos.

Banco de Dados

Para armazenar as informações escolheu-se o Microsoft SQL Server, um SGDB relacional que oferece uma plataforma eficiente e flexível suportando banco de dados com enorme volume de informações. Dentre as vantagens da utilização do SQL Server pode-se citar:

  • Total integração com o .NET Framework;
  • Alta capacidade de armazenamento e disponibilidade;
  • Baixa necessidade de manutenção;
  • Segurança garantida através de criptografia de 64 bits;
  • Linguagem própria para o desenvolvimento de store procedures e triggers, o T-SQL;
  • Suporte a máquinas com múltiplos-processadores;
  • Ferramentas para Business Intelligence.