Ir para o conteúdo

Software de Gestão do Planejamento Estratégico, com a Qualidade como braço direito

  • 26770 visitas
  • 28299 downloads
  • 0 pessoas beneficiadas*
  • R$ 0,00 recursos economizados*
* Dados estimados pelo administrador do software

Download Software de Gestão do Planejamento Estratégico, com a Qualidade como braço direito

 Voltar a Geplanes - ...
Tela cheia

Análise Arquitetural

11 de Abril de 2012, 22:32 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 10 vezes
Caro(s) responsável(is),

primeiramente gostaria de agradecer por esse sistema. Realmente é um ótimo sistema.
De fato, o meu foco no uso desse sistema foi completamente acadêmico. Eu sou aluno
de doutorado na UFMG e submeti o Geplanes a uma análise arquitetural.

Em conjunto com o ex-arquiteto do sistema Rógel Garcia, fomos capazes de identificar
14 restrições arquiteturais. Após o processo de conformação arquitetural, foram
encontradas -- na versão 3.0.3 -- apenas 51 violações pontuais em apenas 6 restrições. 
Dentre os sistemas que avaliei, o Geplanes foi o que obteve uma das melhores taxas
de conformação arquitetural, de fato resultado de um bom projeto arquitetural. 

Como a minha pesquisa atual consiste na recomendação de possíveis correções, eu
encaminho a seguir as restrições utilizadas na análise, seguidas das violações 
detectadas e recomendações de correção dadas pela minha abordagem.

Agradeço desde já a atenção,
--

Ricardo Terra
Doutorando em Ciência da Computação pela UFMG/UWaterloo

 

==================================================================================

module Entities:         br.com.linkcom.sgm.beans.*

module MAController:     br.com.linkcom.neo.controller.MultiActionController+    

module GService:         br.com.linkcom.neo.service.GenericService+

module GDAO:             br.com.linkcom.neo.persistence.GenericDAO+  

module QBuilder:         br.com.linkcom.neo.persistence.QueryBuilder    

==================================================================================

Regra DCL: Entities must-annotate javax.persistence.Entity


Violações (2):

- ControleCadastro

- ControleCadastroItem


Recomendação: Colocar anotação.

==================================================================================

Regra DCL: Entities must-annotate javax.persistence.Id


Violações (2):

- ControleCadastro

- ControleCadastroItem


Recomendação: Colocar anotação.

==================================================================================

Regra DCL: Entities must-annotate javax.persistence.GeneratedValue


Violações (2):

- ControleCadastro

- ControleCadastroItem


Recomendação: Colocar anotação

==================================================================================

Regra DCL: Entities must-annotate br.com.linkcom.neo.bean.annotation.DescriptionProperty

 

Violações (32):

- AcompanhamentoIndicador

- AnexoAnomalia

- AnexoIndicador

- Atividade

- AuditoriaGestaoIndicador

- AuditoriaGestaoIndicadorItem

- AuditoriaInterna

- CausaEfeito

- Comentario

- ComentarioItem

- Competencia

- ControleCadastro

- ControleCadastroItem

- EmailHistorico

- EmailHistoricoUsuario

- ItemAuditoriaInterna

- LogProcesso

- MapaCompetencia

- MapaEstrategico

- MapaNegocio

- MatrizFCS

- MatrizFCSFator

- MatrizFCSIniciativaFator

- PainelIndicadorFiltro

- ParametrosSistema

- Permissao

- SolicitacaoCancelamentoIndicador

- SolicitacaoRepactuacaoIndicador

- Tela

- UsuarioAuditoriaInterna

- UsuarioPapel

- UsuarioUnidadeGerencial


Recomendação: Colocar anotação.

==================================================================================

Regra DCL: $system cannot-create GService, GDAO, MAController


Violação (1):

- UsuarioPapelService: 37 (linha)


Recomendação: Remover instanciação

==================================================================================

Regra DCL: GDAO cannot-create QBuilder

Descrição: Classes que estendem GenericDAO devem utilizar o método query()

ao invés de instanciar o QueryBuilder.


Violações (12):

- br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 172

- br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 360

- br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 378

- br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 397

- br.com.linkcom.sgm.dao.SolicitacaoRepactuacaoIndicadorDAO: 48

- br.com.linkcom.sgm.dao.SolicitacaoCancelamentoIndicadorDAO: 148

- br.com.linkcom.sgm.dao.SolicitacaoCancelamentoIndicadorDAO: 183

- br.com.linkcom.sgm.dao.MapaNegocioDAO: 52

- br.com.linkcom.sgm.dao.IndicadorDAO: 235

- br.com.linkcom.sgm.dao.AuditoriaGestaoDAO: 79

- br.com.linkcom.sgm.dao.ArquivoDAO: 47

- br.com.linkcom.sgm.dao.AnomaliaDAO: 323


Recomendação: Minha abordagem não foi capaz de dar recomendações.

No entanto, seria interessante, de acordo com o conversado com o Rógel, que o

QueryBuilder não seja instanciado diretamente, mas sim, instanciado 

sempre pelo mesmo método, como o método newQueryBuilder. Isso facilitaria

personalizações de queries que afetam todo o sistema. Isso só acontece

com tipos Wrappers (Integer, Long, etc) e Java (String and Object).

================================================================================== 

Autor: Ricardo Terra


88 comentários

  • B64d408d89438c13cf57c4fc2b70387f?only path=false&size=50&d=404Igor Costa(usuário não autenticado)
    13 de Abril de 2012, 15:05

     

    Boa tarde Ricardo,

     

    Desculpe a demora na resposta, nós da Linkcom ficamos satisfeitos em ver os resultados do Geplanes, que corroboram o nosso esforço em oferecer um produto de qualidade a comunidade.

     Vou analisar os pontos levantados pela sua pesquisa e em breve posto aqui um retorno sobre cada ponto.

    Muito Obrigado! 

      

    • 929dbfc744dfca5231f1cf245432c365?only path=false&size=50&d=404Ricardo Terra(usuário não autenticado)
      13 de Abril de 2012, 16:19

       

      Igor Costa,

      tenho certeza que a Linkcom visa a qualidade em seus produtos. Gostaria de reforçar que o Geplanes teve um dos melhores resultados de conformação arquitetural dentre os vários sistemas que analisamos.

      Ademais, fico ainda mais satisfeito com posicionamento pró-ativo dado a essa análise.

      Muito obrigado,
      --
      Ricardo Terra

      • B64d408d89438c13cf57c4fc2b70387f?only path=false&size=50&d=404Igor Costa(usuário não autenticado)
        16 de Abril de 2012, 11:15

         

        Seguem as respostas as observações feitas. Depois queria discutir com você sobre as ferramentas usadas nessa análise, pois elas podem ser bem utéis na manutenção dessa e de outras ferramentas.

         

        Obrigado! 

         

         

        ==================================================================================

        module Entities:         br.com.linkcom.sgm.beans.*

        module MAController:     br.com.linkcom.neo.controller.MultiActionController+    

        module GService:         br.com.linkcom.neo.service.GenericService+

        module GDAO:             br.com.linkcom.neo.persistence.GenericDAO+  

        module QBuilder:         br.com.linkcom.neo.persistence.QueryBuilder    

        ==================================================================================

        Regra DCL: Entities must-annotate javax.persistence.Entity 

        Violações (2):

        - ControleCadastro

        - ControleCadastroItem

        Recomendação: Colocar anotação.

        RESPOSTA: As classes acima não são entidades, portanto não podem tem a anotação @Entity. Na verdade o correto é que elas deveriam estar em outro pacote que não o beans.*, por isso a confusão.

        ================================================================================== 

        Regra DCL: Entities must-annotate javax.persistence.Id 

        Violações (2):

        - ControleCadastro

        - ControleCadastroItem

        Recomendação: Colocar anotação.

        RESPOSTA: Idem a da resposta acima

        ================================================================================== 

        Regra DCL: Entities must-annotate javax.persistence.GeneratedValue 

        Violações (2):

        - ControleCadastro

        - ControleCadastroItem

        Recomendação: Colocar anotação

        RESPOSTA: Idem a da resposta acima

        ================================================================================== 

        Regra DCL: Entities must-annotate br.com.linkcom.neo.bean.annotation.DescriptionProperty 

         

        Violações (32): 

        - AcompanhamentoIndicador

        - AnexoAnomalia

        - AnexoIndicador

        - Atividade

        - AuditoriaGestaoIndicador

        - AuditoriaGestaoIndicadorItem

        - AuditoriaInterna

        - CausaEfeito

        - Comentario

        - ComentarioItem

        - Competencia

        - ControleCadastro

        - ControleCadastroItem

        - EmailHistorico

        - EmailHistoricoUsuario

        - ItemAuditoriaInterna

        - LogProcesso

        - MapaCompetencia

        - MapaEstrategico

        - MapaNegocio

        - MatrizFCS

        - MatrizFCSFator

        - MatrizFCSIniciativaFator

        - PainelIndicadorFiltro

        - ParametrosSistema

        - Permissao

        - SolicitacaoCancelamentoIndicador

        - SolicitacaoRepactuacaoIndicador

        - Tela

        - UsuarioAuditoriaInterna

        - UsuarioPapel

        - UsuarioUnidadeGerencial

        Recomendação: Colocar anotação.

        RESPOSTA: Algumas dessas entidades não são exibidas em tela, por isso não tem seu @DescriptionProperty definido, mas de qualquer forma essa realmente é a abordagem correta.

        ================================================================================== 

        Regra DCL: $system cannot-create GService, GDAO, MAController 

        Violação (1):

        - UsuarioPapelService: 37 (linha)

        Recomendação: Remover instanciação

        RESPOSTA: Ok, correto. Encaminhado para a lista de correções da próxima versão.

        ================================================================================== 

        Regra DCL: GDAO cannot-create QBuilder 

        Descrição: Classes que estendem GenericDAO devem utilizar o método query()

        ao invés de instanciar o QueryBuilder.

        RESPOSTA: Encaminhado para a lista de correções da próxima versão.

        Violações (12):

        - br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 172

        - br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 360

        - br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 378

        - br.com.linkcom.sgm.dao.UnidadeGerencialDAO: 397

        - br.com.linkcom.sgm.dao.SolicitacaoRepactuacaoIndicadorDAO: 48

        - br.com.linkcom.sgm.dao.SolicitacaoCancelamentoIndicadorDAO: 148

        - br.com.linkcom.sgm.dao.SolicitacaoCancelamentoIndicadorDAO: 183

        - br.com.linkcom.sgm.dao.MapaNegocioDAO: 52

        - br.com.linkcom.sgm.dao.IndicadorDAO: 235

        - br.com.linkcom.sgm.dao.AuditoriaGestaoDAO: 79

        - br.com.linkcom.sgm.dao.ArquivoDAO: 47

        - br.com.linkcom.sgm.dao.AnomaliaDAO: 323

        Recomendação: Minha abordagem não foi capaz de dar recomendações.

        No entanto, seria interessante, de acordo com o conversado com o Rógel, que o

        QueryBuilder não seja instanciado diretamente, mas sim, instanciado 

        sempre pelo mesmo método, como o método newQueryBuilder. Isso facilitaria

        personalizações de queries que afetam todo o sistema. Isso só acontece

        com tipos Wrappers (Integer, Long, etc) e Java (String and Object).

        ==================================================================================  

        • 929dbfc744dfca5231f1cf245432c365?only path=false&size=50&d=404Ricardo Terra(usuário não autenticado)
          16 de Abril de 2012, 12:17

           

          Igor, excelentes respostas. Agradeço bastante a atenção dada.

          À propósito, farei contato via seu email para nós conversarmos a respeito da ferramenta. Já adianto que é um plug in para o IDE Eclipse. Nosso grupo de pesquisa está trabalhando bastante nessa ferramenta e ela já está ficando bem profissional.

          Para fazer o download dela, basta usar o seguinte update site: www.​dcls​uite​.org​/upd​ate

          Um artigo focado na ferramenta deve sair logo e envio para seu email. Segue o principal artigo sobre a linguagem: paper

          Att,
          --
          Ricardo Terra

        • 929dbfc744dfca5231f1cf245432c365?only path=false&size=50&d=404Ricardo Terra(usuário não autenticado)
          16 de Abril de 2012, 18:21

           

          Igor, só um detalhe. Se vocês já tiverem corrigido essas poucas violações até sexta-feira (dia 20/abril), teria como me notificar de alguma forma.

          É que estou escrevendo um paper para a International Conference in Software Maintenance 2012 (ICSM link) e agregaria muito valor se eu pudesse dizer que as correções foram, além de abertas, corrigidas.

          Agradeço novamente a atenção,
          --
          Ricardo Terra
          Doutorando em Ciência da Computação pela UFMG/UWaterloo 

          • 34c94587ef6dbe0d7fb34acdf494534a?only path=false&size=50&d=404Jane Brasil(usuário não autenticado)
            23 de Abril de 2012, 11:28

             

            Bom dia, pessoal!

             

            Gostaria de parabenizar pela ferramenta, que por muitos é indicada e elogiada. Nossa organização ainda não a usa, mas gostaríamos de ingressar nessa seara.

             

            Alguém, por gentileza, poderia indicar alguma organização em Salvador/Ba que utilize o software para que pudessemos contactá-la, a fim de verificar a viabilidade de uma demonstração?

             

            Desde logo, agradeço,

            Jane.

Geplanes 2016 - Pesquisa

7 de Janeiro de 2016, 15:21, por Anna Neves

Prezados colegas da Comunidade Geplanes do Portal SPB,



Links Geplanes

3 de Dezembro de 2015, 15:59, por Anna Neves

Prezados,



Natal Antecipado - Geplanes Última Turma Aberta 2015

10 de Novembro de 2015, 12:27, por Anna Neves

Está na hora de começar a planejar o próximo ano... E para ajudá-lo, a equipe Geplanes antecipou o Natal/2015!


Atendendo a pedidos,  abrimos inscrições para a nova e última turma de 2015 do curso: “Geplanes - Do Planejamento à Gestão Estratégica”, que ocorrerá nos dias 26 e 27 de novembro, na sede da LINKCOM, em Belo Horizonte/MG.



Servidores da Seplan participam de curso sobre GEPLANES

10 de Dezembro de 2013, 16:17, por Desconhecido

Os responsáveis técnicos pelo uso do software livre Gestão de Planejamento Estratégico (GEPLANES), da Secretaria de Planejamento e Orçamento (Seplan), participam, nesta quinta e sexta-feira (13/12), do "Treinamento em GEPLANES – Gestão de Planejamento Estratégico", em Belo Horizonte (MG). O objetivo do curso é aperfeiçoar os conhecimentos sobre a utilização da ferramenta.



Primeira Reunião do Grupo de Trabalho do Geplanes ocorre no dia 20 de novembro

6 de Novembro de 2013, 17:49, por Desconhecido

Na manhã do dia 20 de novembro, junto ao Seminário Anual do SISP, acontecerá a 1a. Reunião do Grupo de Trabalho da solução Geplanes, para tratar de necessidades de melhoria ou adaptação da solução disponível no Portal SPB, para uso pela Administração Pública Federal. Os anseios dos dirigentes de TI do Sistema de Administração de Recursos de Tecnologia da Informação – SISP, em busca de soluções disponíveis no Portal do SPB que atendam às necessidades da Administração e de cada Órgão em específico, foram objeto de discussão em reuniões da Comissão de Coordenação do Sistema ao longo de 2013. A formação do Grupo de Trabalho do Geplanes é resultado das atividades já realizadas até o momento entre os órgãos integrantes do SISP na reflexão, modelagem e aprimoramento do conceito e da finalidade do Software Público para a Administração Pública e para a Sociedade.