Professional Documents
Culture Documents
Brasília – 2011
MAGSON MARTINS MAGALHAES
Engenharia de Software.
Brasília, 2011.
MAGSON MARTINS MAGALHAES
Figura 2........................................................................................................................26
Figura 3........................................................................................................................27
Figura 4: ......................................................................................................................27
Figura 5: ......................................................................................................................28
Figura 6: ......................................................................................................................28
Figura 7: ......................................................................................................................29
Lista de Tabelas
Tabela1........................................................................................................................31
Sumário
1 Introdução..................................................................................................................7
1.1 Apresentação do Problema de Pesquisa...........................................................7
1.2 Revisão da Literatura.........................................................................................7
1.3 Justificativa.........................................................................................................8
1.4 Objetivos............................................................................................................8
1.5 Metodologia de Pesquisa...................................................................................8
1.6 Descrição dos capítulos.....................................................................................9
2 Referencial Teórico....................................................................................................9
2.1 Intranet...............................................................................................................9
2.2 Software Livre .................................................................................................10
2.3 Framework e Reusabilidade............................................................................13
2.4 Sistema de Gerenciamento de Conteúdo........................................................13
2.4.1 Joomla!.....................................................................................................14
3 Técnicas e Ferramentas..........................................................................................14
3.1 Apresentação da metodologia de pesquisa.....................................................14
3.2 Apresentação da sua solução e das soluções que levam aos objetivos.........16
3.3 Descrição da solução.......................................................................................17
3.4 Coleta de dados...............................................................................................18
3.5 Avaliação da solução.......................................................................................26
4 Análise dos resultados............................................................................................26
4.1 Apresentação dos resultados...........................................................................26
4.2 Análise dos resultados.....................................................................................29
5 Conclusão................................................................................................................30
5.1 Apresentação dos principais objetivos atingidos e suas soluções..................30
5.1.1 Modelo Atual versus Modelo Proposto.....................................................30
5.2 Principais contribuições...................................................................................31
5.3 Aspectos positivos e negativos........................................................................31
5.4 Trabalhos futuros.............................................................................................31
6 Referências Bibliográficas ......................................................................................33
1 Introdução
modelo que está implementado desde 2001. Desde então sofreu pouco ou nenhum
aperfeiçoamento.
inserção de informações. Dessa forma seu uso fica limitado e não atende
justifica, de forma a não gerar ônus com licenças. Também pela farta documentação
de padrões abertos. Dentre os autores que serão citados nessa pesquisa, tem-se
Jakob Nielsen, que tem importantes contribuições no que tange usabilidade de sites
e como criá-los focados nos anseios dos usuarios. Outro autores, Ricardo Lima
Caratti e Leonardo Mafra Silva, em seu livro Joomla! Avançado, demonstram como
1.3 Justificativa
servir de modelo para que outros órgãos, de todos os poderes, possam criar e
1.4 Objetivos
atualizar.
problema em questão.
2 Referencial Teórico
monografia.
2.1 Intranet
Conceitualmente, segundo Thing(2003,p.446) “Uma intranet é
mesmo com extranet. Tal confusão justifica-se pela similaridade dos termos e
produzidos pelo próprio governo federal, a seguir discriminados, que sinalizam essa
Conceitua-se então:
(RIBEIRO, 20041)
livre não quer dizer que não possa ser vendido. Portanto
Administração Pública. Estudo de caso sobre adoção do SAMBA na Auditoria Geral do Estado de
Takahashi(2000):
tecnológico.
– Versão 4 – p.9)
com o uso de frameworks podem ser a base para outras oportunidades de reuso.
um webmaster. Esse conteúdo podem ser: texto, música, vídeo, fotos, documentos
2.4.1 Joomla!
mundo, devido à sua facilidade de utilização e instalação, e também pelo fato de ter
3 Técnicas e Ferramentas
seguintes:
dados.
dados do Joomla.
de Dados(SGBD)
Figura 1:
objetivos
Seguindo a premissa “dividir para conquistar”, a solução proposta consiste
formato XML mantendo a estrutura dos seus relacionamentos. Para extrair os dados
sua utilização é:
Arquivo geraXml.php
<?
require("ibasedb.php");
require("classe.php");
require("migracao.php");
require("intranet.conf");
$db = new intranet();
arquivo geraXml.php
Arquivo migracao.php
<?php
function mostraNoticia(){//$codigo){
$fp = fopen('noticias.xml', 'a+');
if ($this->query($sqltmp)){
$campo = "<registro>\n<codnoticia>".$dados-
>COD_NOTICIA."</codnoticia>\n";
fwrite($fp,$campo);
$campo = "<email>".$dados->EMAIL."</email>\n";
fwrite($fp,$campo);
//$campo = "<registro>\n<cod_secao>".$dados-
>COD_SECAO."</cod_secao>\n";
//fwrite($fp,$campo);
//abre campo data
$campo = "<codsecao>".$dados-
>COD_SECAO."</codsecao>\n";
fwrite($fp,$campo);
//mostrando
$campo = "<conteudo><![CDATA[".$this-
>retornaConteudo($dados->CONTEUDO,'1')."]]></conteudo>\n</registro>\n";
fwrite($fp,$campo);
}//FECHA WHILE
}//FECHA IF
$campo = "<cod_pai>".$dados->COD_PAI."</cod_pai>\n";
fwrite($fp,$campo);
//mostrando
$campo = "<conteudo><![CDATA[".$this->retornaConteudo($dados-
>CONTEUDO,'1')."]]></conteudo>\n</registro>\n";
fwrite($fp,$campo); //adiciona ao arquivo xml
}//fim while
} //fim if
$campo="</tabela-secao>"; //adiciona ao arquivo xml
fwrite($fp,$campo);
fclose($fp);
function mostraDocumento(){//$codigo){
if ($this->query($sqltmp)){
$campo = "<codsecao>".$dados-
>COD_SECAO."</codsecao>\n";
fwrite($fp,$campo);
//mostrando
$campo = "<caminho><![CDATA[".$dados-
>CAMINHO."]]></caminho>\n</registro>\n";
fwrite($fp,$campo);
}//FECHA WHILE
}//FECHA IF
<tabelas>.
estrutura extraída das tabelas do Interbase para uma estrutura intermediária que
Arquivo passo1.xsl
<xsl:template match="/">
<intranet>
<!--secoes-->
<xsl:for-each select="/tabelas/tabela-secao/registro">
<secao>
<codigo><xsl:value-of se-
lect="./cod_secao/text()"/></codigo>
<codigo_pai><xsl:value-of select="./cod_pai/text()"/></co-
digo_pai>
<nome><xsl:value-of select="./nome/text()"/></nome>
<conteudo>
<xsl:value-of select="./conteudo/text()" dis-
able-output-escaping="yes"/>
</conteudo>
<!--documentos-->
<xsl:variable name="codigoSecaoAtual" se-
lect="./cod_secao/text()"></xsl:variable>
<xsl:for-each select="/tabelas/tabela-
documento/registro">
<xsl:if test="/tabelas/tabela-
documento/registro/codsecao/text()=$codigoSecaoAtual">
<documento>
<titulo><xsl:value-of se-
lect="./titulo/text()"/></titulo>
<data><xsl:value-of se-
lect="./data/text()"/></data>
<caminho><xsl:value-of select="./cami-
nho/text()"/></caminho>
</documento>
</xsl:if>
</xsl:for-each>
<!--/documentos-->
<!--noticias-->
<xsl:for-each select="/tabelas/noticias/registro">
<xsl:if
test="/tabelas/noticias/registro/codsecao/text()=$codigoSecaoAtual">
<noticia>
<titulo><xsl:value-of select="./titulo/text()"/></titulo>
<data><xsl:value-of se-
lect="./data/text()"/></data>
<servidor><xsl:value-of select="./servidor/text()"/></ser-
vidor>
<email><xsl:value-of select="./email/text()"/></email>
<secao><xsl:value-of select="./secao/text()"/></secao>
<conteudo>
<xsl:value-of select="./conteudo/text()" disable-output-es-
caping="yes"/>
</conteudo>
</noticia>
</xsl:if>
</xsl:for-each>
<!--/noticias-->
</secao>
</xsl:for-each>
<!--/secoes-->
</intranet>
</xsl:template>
</xsl:stylesheet>
Arquivo passo2.xsl
<xsl:template match="/">
<intranet>
<componente>
<conteudo>
<xsl:for-each select="/intranet/secao">
<secao>
<id><xsl:value-of select="./codigo/text()"/></id>
<title><xsl:value-of select="./nome/text()"/></title>
<description><xsl:value-of select="./conteudo/text()"/></descrip-
tion>
<categoria>
<id><xsl:value-of select="./cod_secao/text()"/></id>
<title>NOTICIAS</title>
<alias>noticias</alias>
<section><xsl:value-of select="./cod_secao/text()"/></sec-
tion>
<description>Notícias Relacionadas à Seção</description>
<xsl:for-each select="./noticia">
<artigo>
<!--<id/>-->
<title><xsl:value-of select="./titulo/text()"/></title>
<created_by_alias><xsl:value-of se-
lect="./servidor/text()"/></created_by_alias>
<fulltext><xsl:value-of se-
lect="./conteudo/text()"/></fulltext>
<created><xsl:value-of select="./data/text()"/></created>
</artigo>
</xsl:for-each>
</categoria>
</secao>
</xsl:for-each>
</conteudo>
<downloads>
<xsl:for-each select="/intranet/secao">
<secao>
<categoria>
<xsl:for-each select="./documento">
<arquivo>
<titulo><xsl:value-of select="./titulo/text()"/></titulo>
<data><xsl:value-of select="./data/text()"/></data>
<caminho><xsl:value-of select="./caminho/text()"/></caminho>
</arquivo>
</xsl:for-each>
</categoria>
</secao>
</xsl:for-each>
</downloads>
</componente>
</intranet>
</xsl:template>
</xsl:stylesheet>
Arquivo passo3.xsl
<xsl:variable name="description2">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="$description"/>
<xsl:with-param name="replace" select="$apos"/>
<xsl:with-param name="with" select="$apos2"/>
</xsl:call-template>
</xsl:variable>
<xsl:for-each select="./categoria">
</xsl:for-each>
</xsl:for-each>
<!--
<downloads>
<xsl:for-each select="/intranet/secao">
<secao>
<categoria>
<xsl:for-each select="./documento">
<arquivo>
<titulo><xsl:value-of select="./titulo/text()"/></titulo>
<data><xsl:value-of select="./data/text()"/></data>
<caminho><xsl:value-of select="./caminho/text()"/></caminho>
</arquivo>
</xsl:for-each>
</categoria>
</secao>
</xsl:for-each>
</downloads>
-->
</xsl:template>
<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
elas tratadas.
Figura 2
Figura 3
Figura 5:
Figura 6:
caracteres não textuais que apareceram como “sujeira” durante a transformação dos
notícias estarem armazenados no formato BLOB (do inglês: Binary Large OBject,
que significa grande objeto binário na tradução literal). Outro impasse surgiu de
com uma estrutura tecnológica arcaica e de certa forma obsoleta para uma nova
estudo de caso o item mais importante, pois era uma funcionalidade que não existia
na estrutura anterior. Com tal funcionalidade, a busca por informações torna-se uma
Tabela 1
método para a atualização tecnológica de sites dinâmicos para um sistema que tem
O método utilizado neste estudo de caso pode ser usado como referência
provavelmente não serão as mesmas mas a experiência obtida com este estudo
página atual segue a mesma estrutura da intranet, logo, o mesmo método poderá
ser aplicado.
6 Referências Bibliográficas
Disponível em http://www.inf.ufpr.br/~roberto.