Proposta impressa de projeto de modelagem

Propaganda
Pontifícia Universidade Católica do Paraná - PUCPR.
Mestrado em Informática Aplicada
Curitiba, 29 de Março de 2006.
Equipe: Daniel Brizuena Arsie
Proposta de Projeto de Modelagem
Um ativo de T.I. pode ser qualquer elemento, físico ou lógico, previamente
definido, que esteja contido no ambiente computacional, independente da
plataforma ou sistema operacional. Por exemplo:
 Ativos Físicos (Hardware): Desktops, Servidores e Elementos de
Conectividade (Roteadores, Switchs, etc.)
 Ativos Lógicos (Software): Elementos de Sistemas (Programas,
Classes, Métodos, Variáveis), Linguagens de Controle, Estrutura de
Banco de Dados, etc.
Para desenvolver um software completo para gestão de ativos de T.I. É
necessário que o mesmo possua uma ferramenta de busca poderosa e flexível o
suficiente para atender o mercado tão heterogêneo da tecnologia. Portanto neste
trabalho proponho a modelagem do componente responsável pela execução de
uma linguagem própria de busca, baseada em SQL.
Este componente recebe do usuário uma consulta nesta linguagem,
perfeitamente validada e armazenada em formato XML, um outro documento XML
que define os tipos de dados usados na consulta e uma lista de variáveis e seus
respectivos valores, caso sejam utilizadas. A partir destes dados iniciais, é preciso
identificar cada elemento e executar a consulta solicitada no Banco de dados,
onde estão contidos todos os ativos de T.I. da empresa, representados em forma
de registros.
Explorando apenas os ativos lógicos, podemos ter como exemplos de
consulta:
Define Target = “Compiled File.jar”
Select **
Where “Class” property “Caption” <*> “factory”
Na consulta acima seleciona-se em uma pasta de arquivos contendo
códigos fontes, quais arquivos jar, possuem uma classe que possua o termo
“factory” em seu nome. Este exemplo pode ser realizado por uma ferramenta de
busca textual qualquer. Porém trata-se de um exemplo básico.
Na consulta a seguir:
Select “Method” By Link “Variable” (BOTH)
Where “Method” property “Type” == “get”
“Variable” property “Type” == “Integer”
Selecionam-se todos os métodos do tipo “get” que possuem alguma ligação
com o ativo “Variable”, ou seja, que possuem variáveis, porém só as do tipo
inteiro. O Item “BOTH” é a direção de uma ligação, no caso de ida ou volta, ou
seja, pode ser uma variável de retorno ou passada como parâmetro, caso “BOTH”,
fosse substituído, por A, poderiam ser apenas as de retorno, o que não alteraria o
resultado, porém supondo que A seja retorno, a direção B, seria parâmetro,
portanto o uso de B, não traria resultado algum.
Deste ponto em diante as possibilidades são infinitas imaginando que o
repositório destes ativos de T.I. (metadados de fontes) carregado com fontes de
varias linguagens e projetos diferentes de uma mesma empresa, pode ser usado
para qualquer tipo de auditoria, pesquisa ou estudo de impactos.
A tarefa do componente abstraída neste texto parece simples, porém é um
conglomerado de soluções complexas, que exigem poder de processamento e
armazenamento eficientes do sistema computacional, a fim de executar a consulta
num tempo mínimo, independente de plataforma operacional, Banco de Dados, ou
repositório envolvido.
Funcionalidades necessárias ao componente:
 Identificar cada item importante da consulta;
 Validar os tipos e variáveis usadas;
 Executar cada passo da consulta usando os resultados encontrados no
próximo passo;
 Gerenciar dinamicamente o uso de memória, serializando resultados
obtidos que possam vir a causar travamento do sistema;
 Preparar o acesso e a execução de pesquisas no repositório de dados,
independente da tecnologia de banco usada;
 Preparar adequadamente a saída desejada pelo usuário, além de
gerenciar a os lotes de resultado, para não sobrecarregar o usuário com
dados.
Download