Notícias

Modelos de dados, repositórios e aplicações

No blog de Enrique Almeida.

Modelos de dados, repositórios e aplicações

Estou lendo o livro The Data Model Resource Book: Universal Patterns for Data Modeling (Volumen 3) .
O mesmo autor tem dois livros anteriores de referência, o primeiro mostra modelos de dados que se adaptam e combinam para diferentes problemas, e no volume 2, adapta os mesmos para diferentes indústrias
São livros pesados, mas que servem para referências quando há que modelar alguma realidade pouco conhecida.

Neste terceiro livro, ele tenta explicar os padrões gerais que aparecem no modelado de dados, e também, quando convém aplicá-los. Além disso, mostra diversas opções de implementação e níveis de detalhe. Parecem ideais para a implementação de GeneXus Patterns com os mesmos. Alguns dos padrões descritos no livro são as Hierarquias, Categorias, Clarificação, Estado, etc. Ainda não acabei de ler, por isso não é sobre isto que quero escrever.

Enquanto lia este livro, olha que linda roda inventei.

Hoje acordei com a sensação que o desenvolvimento de software podia se fazer mais rápido se aplicássemos padrões já provados por outros. Minha idéia (que não é minha) é que poderíamos aplicar padrões a muitas outras coisas das fazemos hoje, ou que já fizemos, sem eu ter bem clara esta questão.

Quais seriam os passos para o desenvolvimento de uma aplicação?


1) Escolher as entidades que participam da minha aplicação.
2) Escolher os atributos que fazem partedde cada entidade.
3) Escolher padrões de categorias, hierarquias, etc.
3) Escolher/ajustar os domínios que existem.
4) Escolher os patrões de desenho que se devem aplicar.
· WorkWith
· SummBy
· ExportToExcel
· ReportesPDF
· CrossTable
· .... e bem mais...
5) Escolher o padrão de desenho gráfico (Theme).
6) Carregar dados (programa que gera dados de prova).
7) Programar os objetos faltantes.
8) Apagar tudo o que não se utilizou (KBDoctor!).
9) Prototipar e ajustes de parâmetros dos padrões.
10) Declarar segurança e Auditoria.
11) Testagem funcional da aplicação.
12) Testagem de aceitação e carga.
13) Instalação da aplicação (Deployment).
14) Ajustes à aplicação e à base de dados.

O que nos falta

a) Repositório de Entidades.
É necessário ter um repositório onde eu possa baixar "estruturas" de CLIENTES, PAÍSES, EMPRESAS, etc. O que imagino seria ter um Wizard onde escolher o nome da entidade de primeiro nível, mostrando-me aí as entidades que se relacionam com as mesmas.
Aí mostra os atributos de cada uma das entidades. Escolhem-se os que se precisam e com isto se "criam" as transações necessárias e também os objetos necessários para que estas entidades funcionem corretamente. Seriam marcados como público os objetos que possam ser usados de fora e outros ficariam marcados como privados (isto precisa da manipulação de módulos).

b) Geração de dados de provas.
Todos as Entidades deveriam ter os programas para a geração de dados em forma automática.

c) Repositório de themes.
Seria bom ter vários temas para poder escolher e uma forma fácil de ver nossa aplicação funcionando com diferentes themes.

d) Segurança e Auditoria declarativa nas aplicações.

e) Ferramentas de Testagem Unitária

f) Ferramentas do Testagem Funcional e Carga

g) Ferramentas de Ajuda do Deployment

h) Ferramentas do Tunning de Aplicações e Base de dados.

i) Ajuda para a integração entre diferentes padrões.
Por exemplo, o WorkWith deveria poder comunicar ao padrão de desenho gráfico (Theme) que está faltando determinada class.

Os padrões deveriam poder comunicar-se bem entre eles, de forma de ter uma API para que todos os demais padrões possam se comunicar.

Acredito que deveríamos começar por ter um repositório de entidades, domínios e atributos. Com isto já séria um passo muito importante, para poder desenvolver em forma mais rápida.


* Publicado no blog Desarrollando desde la trinchera.