- Ferramenta única para programação e documentação de referência (editor de texto usado na programação).
- Fácil visualização de erros de documentação
- Maior produtividade
- Mais comunicação dentro da equipa de programação (dado que todas as funções estarão documentadas, estando esta fácilmente disponivel).
Como é óbvio, no entanto os programadores e chefes de projecto têm de criar uma disciplina que permita que durante as alterações aos programas, os documentos tambem o sejam. Inclusivamente deve-se definir alguns padrões relativos aos comentários a inserir.
- A possibilidade de a documentação de referência estar incluida nos programas fonte
- Geração de documentos de referência em formato fácilmente legivel e acessivel
- Possibilidade de pesquisa
- Documentos de referência com organizações diversas
$ fgldoc --ui=CUI --action=ImportFgl --import_directory=/tmp --load_recursive
$ fgldoc --ui=CUI --action=importCSV --sheet_file=/tmp/comments.csv --load_recursive --normalize
$ fgldoc --ui=CUI --action=export2Fgl --sheet_file=<fileName> --export_directory=<directoryName>
$ fgldoc --ui=CUI --action=export2Csv --export_directory=<directoryName> --export_source=<fglSourceName.4gl>
$ fgldoc --ui=CUI --action=export2Html --export_html_directory=<directory_name>
Componente que serve de envolovente à execução da(s) acções permitidas pelo documentador de 4gl. A maioria das acções de documentação são executadas por intermédio deste programa.
Está construido em perl e aceita as seguintes opções
de execução:
- --help : Define as opções permitidas
- --ui={GUI | CUI} : User interface com o qual será executada a aplicação que poderá ser:
- GUI : Graphical User Interface (Modo Perl / Tk)
- CUI : Command line User Interface. Não tem interacção com utilizador. Obriga a acções minimas de execução.
- --action=<ActionName> : Acção a executar, que poderão ser:
- importCSV : Importa os comentários de um ficheiro com um separador fixo
- importFgl : Importa os comentários dos source 4gl
- export2Fgl : Exporta os comentários para os sources 4gl. Obriga os parâmetros --exportDirectory e --exportSource .
- export2Csv : Exporta os comentários para um ficheiro com separador fixo
- export2Html : Exporta os comentários para um conjunto de ficheiros em html devidamente interligados
- --export_directory=<dirName> : No caso de exportação dos comentários para os sources de 4gl deve conter o nome do directório onde este(s) se encontram.
- --exportSource=<fglname> : No caso de exportação dos comentários para os sources de 4gl irá conter o nome do programa fonte.
- --quiet : Retira toda e qualquer mensagem enviada para o standard output.
- --insertEmptyComment : Se afectada indica que deve ser inserido um comentário vazio numa função que não o tenha definido no repositório. Usado na opção de exportação para sources 4gl.
- --sheet_file=<CSVfileName> : Indica o nome do ficheiro com separador CSV a usar no caso da importação e exportação para ficheiros com caracter separador.
- --normalize : Indica que a informação carregada do ficheiro com separador CSV deve ser normalizada e não apenas mantida na tabela com estrutura exactamente igual ao ficheiro.
- --clean_repository : Se afectado indica que o repositório deve ser limpo antes de carregada a informação.
- --send_line_to_log
- --package_name=s : Indica o nome do package a inserir durante o carregamente dos sources 4gl
- --load_recursive : No caso do carregamento de informação de 4gl(s) indica que deve ser carregados os ficheiros do directório definido e de todos os sub-directórios correspondentes
- --import_directory=s : Define o directórtio onde estão os 4gl(s) de onde se pretende carregar a informação.
- --export_html_directory=<htmlDirectoryName> : Indica qual o directório para onde a informação em formato html será exportada / gerada
- --ignore_exist_dir : Se afectado indica que o programa deve ignorar se o directório já existe. Utilizado pela exportação para html
CUI é uma sigla que significa Command line User Interface.
Tem como objectivo possibilitar a execução
batch das operações permitidas.
É acedido quando o programa executado com opção --ui=CUI.
Uma vez que após a sua execução não
deverá existir qualquer interacção com os utilizadores
, todas as opções necessárias devem ser fornecidas
por linha de comando ou estar disponiveis no ficheiro de parametros (normalmente
.fgldocrc).
- Load do ficheiro para uma tabela exactamente com a mesma estrutura.
- Normalização da informação para a 3ª forma normal, para o modelo relacional definido.
- Ficheiro a importar: Nome completo do ficheiro a carregar dando acesso a um File Chooser para a escolha. Por default a sua extensão será .txt.
- Limpeza do repositório : Não utilizado
- Normalização : Quando desactivado a 2ª fase não é executada.
- Enviar linha para log : Quando activado, cada linha carregada é enviada para o log.
Se o utilizador carregar no botão <Cancel> ou fechar a janela, a operação não é executada voltando ao menu principal.
O ficheiro deve ser com separador <TAB> entre colunas e <Enter>
entre linhas.
Deve conter 7 colunas cuja informação
deve ser (por ordem):
- moduleName : Nome do módulo 4gl
- idProcess : Código do processo
- functionName : Nome da função
- parametro : Parâmetro
- retorno : Descrição do retorno
- call :
- comments : Comentáriodescritivo da função
- Nome do package : Nome de package a que os módulos 4gl ficarão associados. Para já não é muito usado.
- Localização do directório : Nome completo do directório abaixo do qual estão os sources 4gl de que se pretende efcetuar o parsing.
- Lista de módulos : Lista completa dos módulos de 4gl de que se pretende efcetuar o parsing
- Load comments : Indica se se pretende ou não carregar no repositório os comentários fgldoc.
- Parse Only : Serve apenas para testar se o parsing é ou não efectuado com sucesso não carregando qualquer informação na base de dados.
- Repositório : Informação necessária para estabelecer a conexão com a base de dados.
- Carregamento de utilização de tabelas: Se activado qualquer informação sobre utilização de tabelas é carregada no repositório.
- Carregar parametros : Se activado indica que o parser deve carregar os parâmetros das funções no repositório.
- Carregar Strings : Se activado as strings serão carregadas no repositório. Ainda não está em funcionamento.
- Carregar variáveis locais : Se activado indica que as variáveis locais serão carregadas no repositório.
- Recursivo : Se activado serão adicionados à lista todos os ficheiros com extensão .4gl existentes abaixo do directório definido e(ou) nos sub-directórios.
Se o utilizador carregar no botão <Cancel> ou fechar a janela, a operação não é executada voltando ao menu principal.
Se o utilizador carregar no botão <Cancel>
ou fechar a janela, a operação não é executada
voltando ao menu principal.
- Directório : Localização (nome do directório completo) onde se encontra o módulo 4gl onde se deseja inserir os comentários
- Módulo de 4gl : Apresenta sob a forma de lista os sources 4gl do directório escolhido. Só permite escolher um ficheiro, nesta versão.
- Substituição de fgldocs : Se activado substitui eventuais fgldoc que existam no ficheiro, caso contrário deixa-os e cria um novo.
Se o utilizador carregar no botão <Cancel>
ou fechar a janela, a operação não é executada
voltando ao menu principal.
Se o utilizador carregar no botão <Cancel>
ou fechar a janela, a operação não é executada
voltando ao menu principal.
- 4gl doc repository : Informação necessária para estabelecimento da conexão à base de dados
- syspgm repository : Não usado, de momento
- CSV import file : Nome do ficheiro usado por default para carregar o repositório com base no repositório CSV
- XML file : Não usado, de momento .
- CSV Export file : Nome do ficheiro onde a acção de exportação irá gravar a informação, por default.
- XML export file : Não usado, de momento
A frame de processos de negócio apresenta a lista de processos registados numa tabela e à qual estão associdas funções de 4gl. Cada um destes processos é um link que actualiza a janela que contem a lista de módulos. Existe a opção de seleccionar todos os processos.
- Processos de negócio
- Módulos / sources de 4gl (constrangidos ou não por um processo)
- Comentários (constrangidos ou pelo módulo ou processo).
- Nome
- Comentário textual.
- Parametros: Lista e descrição.
- Retorno(s) : Descrição de cada um deles.
- csvImportFile : Nome do ficheiro CSV de onde os dados serão importtados.
- xmlImportFile : Não utilizado.
- UI : Tipo de user interface utilizado.
- action : Acção aexecutar.
- importInformixDir : Informixdir do repositório residente em SGBD Informix.
- importInformixServer : Informixserver dso repositório.
- importHost : Host onde o repositório reside.
- importDatabase : Database onde o repositório reside.
- importUser : Utilizador para acesso á base de dados.
- exportInformixDir : ???
- exportInformixServer : ???
- exportHost : ???
- exportDatabase : ???
- exportUser : ???
- csvExportFile : Nome do ficheiro CSV para onde a informação será exportada.
- xmlExportFile : Não usado
- clearRepositoryOnImportCSV : Indica se o repositório deve ser limpo quando se importar de CSV.
- normalize : Indica que ao importar de CSV a tabela p4gl_excel deve ser normalizada para as tabelas respectivas.
- clearRepositoryOnImportXML : Não utilizado.
- loadComments : ???
- parseOnly : Indica que durante a acção de importação de sources 4gl deve ser efectuada apenas um parse do ficheiro. Usado sobretudo para validar eventuais erros de sintaxe e (ou) utilização de palavras reservadas como identificadores.
- loadTableUsage : Indica que se pretende efectuar o carregamento de utiulização de tabelas (em SQL embebido não dinâmico).
- loadParameters : Indica que se pretende carregar os parametros durante a acção de carregamento dos sources 4gl.
- loadStrings : Não utilizado.
- loadLocalVariables : Não utilizado.
- sourceDir : Define o directório onde os ficheiros de 4gl irão estar localizados.
- replaceFgldoc : Indica que na acção de exportação dos comentários para 4gl, estes devem ser substituidos.
- fglSource : Indica qual o módulo de 4gl para onde os comentários devem ser exportados, na acção de exportação para 4gl.
- logShowed : Não utilizado.
- importFglLocation : Indica o directório onde os 4gl(s) a importar deverão estar localizados.
- loadFilesRecursive : Indica que o load de informação de 4gl deve ser efectuada recursivamente.
$csvImportFile = '/usr/home/sergio/MOB.txt'; $xmlImportFile = '4gl_mapping.xml'; $UI = 'GUI'; $action = 'export2Fgl'; $importInformixDir = '/usr/informix'; $importInformixServer = 'unstable'; $importHost = 'debian'; $importDatabase = 'p4gl_repository'; $importUser = 'sergio'; $exportInformixDir = undef; $exportInformixServer = undef; $exportHost = 'debian'; $exportDatabase = 'p4gl_repository'; $exportUser = 'sergio'; $csvExportFile = '4gl_mapping.txt'; $xmlExportFile = '4gl_mapping.xml'; $clearRepositoryOnImportCSV = undef; $normalize = '1'; $clearRepositoryOnImportXML = 'false'; $loadComments = undef; $parseOnly = 0; $loadTableUsage = undef; $loadParameters = 1; $loadStrings = 0; $loadLocalVariables = 0; $sourceDir = '/usr/home/sergio/tmp/src/AMARELA/4gl'; $replaceFgldoc = 0; $fglSource = 'BdAmrCliente.4gl'; $logShowed = '1'; $importFglLocation = '/usr/home/sergio/AMARELA/src/4gl'; $loadFilesRecursive = '1';
Este executável é, sob o ponto de vista da utilização da documentação, a parte mais importante. Quando um projecto estiver correctamente organizado e estruturado, a documentação será realizada pelos programadores em cada programa fonte e carregada para o repositório usando esta ferramenta.
- -h : Mostra a mensagem de help
- -d : Indica que se pretende ligar o debug mode que efectua um dump da informação carregada
- -i : Indica que o programa deve inserir no repositório
- -v : Indica se o modo verbose deve ou não ser ligado
- -w : Warning level (1..10)
- -c : Gera a informação html para este módulo especifico
- -s : Indica que se pretende carregar a informação contida em comentários normais (não começados com {**).
- -p package : Package name used to load the information
Tabela
|
Descrição
|
p4gl_excel |
Imagem do
ficheiro CSV (registos com caracter separador) usado por carregamento de
folha de cálculo. |
p4gl_module |
Source 4gl
no qual existe código programado. |
p4gl_package |
Package. Abstração
que irá permitir a unicidade de módulos e uma eventual classificação
do mesmo. Poderá corresponder a uma aplicação ou directório. |
p4gl_process |
Processos.
Abstração que define o(s) processo(s) se negócio implementados
pelo software. |
p4gl_function |
Funções
que estão implementadas em módulos. |
p4gl_fun_parameter |
Parametros
de execução de cada função declarada num módulo |
p4gl_fun_process |
Processos
de negócio que uma função implementa |
p4gl_fun_return |
Valores de
retorno devidamente identificados com comentários que uma função
devolve |
p4gl_fun_todo |
Lista de acções
por realizar de uma função |
p4gl_module_prog |
Módulos
de 4gl que compõe o programa |
p4gl_program |
Programa executável |
p4gl_table_usage |
Utilização
de tabelas em módulos e funções (para 4gl embebido
não dinâmico) |
- Carregar informação sobre os módulos para o repositório através de parsing : Nesta fase ficará guardado no repositório todas as funções dos módulos analisados com os respectivos parametros.
- Gerar ficheiro CSV com esta informação.
- Editar informação no Excel.
- Completar a informação no repositório com base no ficheiro CSV editado no Excel.
- Exportar a informação para os sources 4gl.
- Alterar os comentários nos fontes 4gl
- Efectuar o carregamento para navegação na informação.