Unidade VIII Auditoria de Desenvolvimento e Manutenção
de Sistemas
1. Enfoques de Auditoria de Desenvolvimento de Sistemas
1.1 Objetivo
TCU: "A auditoria do desenvolvimento de sistemas objetiva
avaliar a adequação das metodologias e procedimentos de
projeto, desenvolvimento, implantação e revisão pós-implantação
dos sistemas [aplicativos] produzidos dentro da organização
auditada."
1.2 Abrangência
"Pode ser apenas o ambiente de desenvolvimento da
organização ou também a análise do processo de
desenvolvimento de um sistema específico, ainda na fase de
planejamento, já em andamento ou após sua conclusão."
1.3 Justificativas para se Auditar o Desenvolvimento de
Sistemas
- O desenvolvimento de um sistema de informação
representa um investimento que não pode ser assumido sem
dados confiáveis e precisos sobre o custo do projeto,
seus benefícios e os riscos envolvidos.
- Todos os projetos de desenvolvimento de sistemas precisam
ser avaliados em profundidade, devendo ser precedidos de
análises de custo/benefício, capacidade de satisfação
dos usuários e de atendimento aos objetivos da organização,
custos de desenvolvimento, medidas de desempenho, planos
de implementação, previsão de recursos humanos necessários,
etc.
- Além disso, todo projeto de desenvolvimento necessita
ser "gerenciado", ou seja, possuir mecanismos
de gerenciamento, permitindo sua avaliação, controle e
acompanhamento durante todas as fases do processo de
desenvolvimento.
- Toda essa complexidade descrita acima exige, portanto,
que sejam necessárias a validação e a avaliação de
todos os processos de desenvolvimento de sistemas de uma
organização.
1.4 Pontos de Controle da Atividade de Desenvolvimento de
Sistemas
O desenvolvimento de sistemas possui diversas fases que podem
ser assim divididas: Planejamento Corporativo de Sistemas;
Elaboração do Plano de Desenvolvimento e Início do Projeto;
Organização e Gerência do Projeto; Elaboração do Projeto de
Sistema; Revisão e Aprovação pelos Dirigentes; Desenvolvimento
e Implantação; e Revisão Pós-implantação.
1.4.1. Planejamento Corporativo de Sistemas
A organização:
- identifica as necessidades de informação não atendidas
e estabelece um plano de ação para desenvolver os
sistemas de maior prioridade?
- estabelece e documenta a(s) metodologia(s) de
desenvolvimento a ser(em) adotada(s)?
- define e documenta as responsabilidades de todas as
pessoas envolvidas no desenvolvimento de sistemas?
A metodologia de desenvolvimento de sistemas (se estabelecida):
- prevê o envolvimento ativo dos usuários no processo?
- prevê o uso de técnicas atuais, compatíveis com os
conceitos e práticas geralmente aceitos?
- é suficientemente documentada?
- oferece meios para gerenciar as mudanças de requisitos
do projeto que ocorram durante a vida do sistema?
- estabelece mecanismos de reavaliação, acompanhamento e
controle em todas as fases do processo, pela equipe e gerências
envolvidas, permitindo redirecionar os trabalhos ou até
mesmo abandonar o projeto, caso venha a se concluir que o
sistema não irá atender às necessidades da organização?
- o pessoal envolvido no desenvolvimento e testes de
sistemas foi treinado para usar a metodologia adotada e
está qualificado para atuar na área?
1.4.2 Elaboração do Plano de Desenvolvimento e Início do
Projeto
- O projeto é minuciosamente avaliado quanto à sua
viabilidade técnica e é analisada sua relação custo/benefício?
- São definidos a natureza e abrangência do projeto, os
requisitos do usuário, os objetivos e outras informações
relevantes nesta fase?
- A equipe de projeto (técnicos de informática e usuários)
tem, no conjunto, habilidades e conhecimentos suficientes
para conduzir o projeto e sua implementação com
sucesso?
- As estimativas e análises feitas em relação a
cronograma, previsão de recursos humanos e materiais e
custos são razoáveis e os benefícios são atingíveis?
- Foram reservados recursos suficientes para a completa
realização do projeto?
1.4.3 Organização e Gerência do Projeto
- A equipe de projeto definiu claramente a abrangência do
projeto de forma coerente com os objetivos previstos no
plano de desenvolvimento (estudo de viabilidade/anteprojeto)?
- Os usuários aprovaram e estão de acordo com a abrangência
do projeto?
- Foi elaborado um plano de trabalho, contendo os
mecanismos de acompanhamento e controle do projeto (cronograma,
datas-limite, processo de supervisão e acompanhamento
das etapas, medidas de desempenho) de acordo com a
metodologia de desenvolvimento de sistemas?
- O plano de trabalho foi devidamente analisado pela área
de planejamento da organização e pelo Departamento de
Tecnologia da Informação (DTI)?
1.4.4 Elaboração do Projeto do Sistema
- A equipe de projeto elaborou os projetos lógico e físico
e produziu documentação que apresenta:
- características físicas (plataforma, recursos
exigidos) e funcionais (atividades a serem
executadas);
- restrições ou impedimentos que possam limitar a
implementação do projeto;
- tecnologias envolvidas (arquitetura de sistema,
sistemas de segurança, questões de integração,
interconectividade e interoperabilidade);
- abordagem do projeto, seus componentes e como
eles operarão em conjunto;
- relatório de viabilidade técnica, análise de
riscos e custos/benefícios do projeto;
- controles preventivos e corretivos, e trilhas de
auditoria para os pontos críticos do(s) sistema(s)
a ser(em) implementado(s)?
- Os projetos lógico e físico estão dentro dos padrões
da organização no tocante ao hardware, software,
sistemas operacionais e linguagens de programação?
1.4.5 Revisão e Aprovação pelos Dirigentes
- A equipe de projeto submeteu aos superiores um relatório
(ou documento similar) para revisão e aprovação do
projeto?
- O gerente de TI ou seu representante analisou os
documentos produzidos nas fases anteriores e concordou
com seu conteúdo?
- A área usuária aprovou o relatório da equipe de
projeto, autorizando-a a seguir para a fase de
desenvolvimento e implantação do sistema?
1.4.6 Desenvolvimento e Implantação
- A equipe desenvolve (isto é, codifica, integra e testa)
o sistema e avalia sua qualidade?
- Os usuários testam e aprovam ou não sua implantação (homologação)?
- O sistema aprovado é implantado de acordo com planos
detalhados de testes, transição, implantação e operação?
- O sistema foi produzido de acordo com a metodologia de
desenvolvimento adotada pela organização? Atende às
especificações do projeto?
- A documentação do sistema desenvolvido está dentro dos
padrões adotados pela organização?
1.4.6.1 Teste do Sistema
- Existe um plano detalhado para o teste do sistema?
- Foram executados, de acordo com o plano, os testes do
sistema e de integração com outros sistemas, utilizando
um número suficiente de condições válidas e inválidas?
- O ambiente de teste é diverso do ambiente real (de produção)?
- Os testes foram revistos, documentados, seus resultados
analisados e aprovados pela área de informática e pela
área usuária?
- Foi efetuado um teste de aceitação final junto aos usuários
selecionados?
- As deficiências e erros encontrados foram devidamente
corrigidos antes do sistema entrar em operação?
1.4.6.2 Implantação
- O sistema é colocado em uso somente após a aprovação
formal (homologação) dos usuários?
- Existem procedimentos padrões para distribuição de
software novo?
- As bibliotecas (ambiente de armazenamento) dos sistemas
em desenvolvimento são independentes das de sistemas em
manutenção, testes e de programas em produção?
- Os códigos-fonte são mantidos em bibliotecas (ambiente
de armazenamento) próprias?
1.4.7 Revisão Pós-Implantação
- É verificado o grau de satisfação dos usuários com os
sistemas implantados?
- É checado se os requisitos iniciais do usuário foram
satisfeitos?
- É checado se o sistema alcançou os benefícios
esperados em sua concepção?
- O sistema é (foi) testado para verificar sua
conformidade aos padrões de desenvolvimento
estabelecidos pela organização?
2. Enfoques de Auditoria de Manutenção de Sistemas
Os controles sobre a modificação de programas aplicativos
ajudam a garantir que somente programas e modificações
autorizadas sejam implementados. Sem um controle apropriado,
existe o risco de que características de segurança possam ser
omitidas ou contornadas, intencionalmente ou não, e que
processamentos errôneos ou códigos fraudulentos sejam
introduzidos. Por exemplo:
- um programador pode modificar código de programas para
desviar dos controles e obter acesso a dados
confidenciais;
- a versão errada de um programa pode ser implementado,
perpetuando processamentos errados ou desatualizados;
- um vírus pode ser introduzido, prejudicando o
processamento.
Os elementos críticos para a avaliação dos controles de
manutenção de software são:
- As modificações nos programas são devidamente
autorizadas?
- Todos os softwares novos ou revisados são testados e
aprovados?
- Gerenciamento de Configuração de Software.
2.1 Alterações de Programas / Autorizações
- São utilizados formulários de solicitação de alteração
de software para documentar pedidos e autorizações de
mudança? Esses registros podem ser eletrônicos, atas de
reunião, etc. (devem ser formais).
- As solicitações de alterações são submetidas à
aprovação tanto dos usuários do sistema quanto do
departamento de T.I.?
2.2 Testes das Alterações
- Foram desenvolvidos padrões para os testes de software,
que indicam a responsabilidade de cada parte envolvida (usuários,
analistas de sistemas, programadores, auditores, controle
de qualidade)?
- Planos de teste são documentados e aprovados?
- Testes da rotina alterada e sua integrações são
executados e aprovados de acordo com o plano? Com
amostras suficientes?
- O ambiente de teste é diverso do ambiente real? Os dados
são diferentes?
- Alterações são colocadas em uso somente após aprovação
formal?
- Quando as modificações são colocadas em uso, a
documentação é atualizada?
2.3 Alterações de Emergência
- Existem procedimentos de alterações de emergência
documentados?
- As alterações de emergência são:
- documentadas e aprovadas pelo supervisor de operação?
- formalmente relatadas à gerência de operação?
- aprovadas, ainda que depois de realizadas, pelo
gerente de desenvolvimento?
2.4 Gerenciamento de Configuração de Software
- Existe um software de gerenciamento de configuração
para:
- produzir trilhas de auditoria de alterações de
programas;
- manter números de versões dos programas;
- registrar e relatar alterações de programas;
- manter informações sobre datas de criação de
módulos em uso;
- manter cópias de versões anteriores; e
- controlar alterações paralelas?
- Reproduções do código do programa, antes e depois da
alteração são arquivadas e comparadas para garantir
que somente as mudanças aprovadas foram implantadas?
3. Referências Bibliográficas