Olá, estudante!
Agora que já aprendeu acerca da habilitação da aceitação no treinamento de usuários, nesta lição, você compreenderá os conceitos de suporte e manutenção de sistemas. Assim, será capacitado a reconhecer a importância dessas atividades no ciclo de vida dos sistemas de software, destacando como elas garantem a operação contínua e eficiente após a implementação inicial. Por meio desta lição, você aprenderá os diferentes tipos de manutenção, incluindo corretiva, adaptativa, perfeita e preventiva, e como cada uma contribui para a longevidade e a funcionalidade dos sistemas.
Ao final da lição, você estará apto a aplicar esses conhecimentos de forma prática, assegurando que os sistemas de software permaneçam alinhados com as necessidades dos usuários e os objetivos organizacionais.
Vamos lá?
Conforme mencionado em outras ocasiões, a implementação de sistemas de software enfrenta desafios contínuos após a entrada em operação, como a degradação do desempenho, resultando em lentidão, falhas e interrupções no serviço. Todos esses problemas afetam a eficiência operacional, a satisfação do usuário e a produtividade, e, sem suporte e manutenção adequados, questões menores podem se agravar, levando a falhas graves e custos elevados de operação e recuperação.
Há diferentes tipos de manutenção: a corretiva resolve bugs e falhas imediatamente após serem detectados, enquanto a adaptativa ajusta o sistema para o ambiente de TI em constante mudança; a perfeita melhora o desempenho e a eficiência do sistema; e a preventiva evita problemas futuros por meio de atualizações e melhorias regulares. Nesse sentido, ferramentas de monitoramento contínuo e gestão de incidentes são essenciais, pois permitem a detecção precoce de problemas, possibilitando uma resposta rápida e eficaz.
Com a aplicação dessas soluções, uma organização pode transformar a manutenção de sistemas em uma vantagem competitiva. Por meio do suporte contínuo e das atualizações regulares, os sistemas de software permanecem confiáveis e eficientes, alinhados com as necessidades e expectativas dos usuários. Isso, além de melhorar a satisfação e a produtividade dos usuários, também contribui para a longevidade do sistema e a redução de custos a longo prazo.
Agora que o assunto começou a fazer sentido, vamos nos aprofundar mais!
Para entender como o suporte e a manutenção dos softwares são importantes, trago a você um breve relato envolvendo uma empresa de médio porte especializada em software educacional. A companhia enfrentava alguns problemas de desempenho em seu sistema de gestão acadêmica, como lentidão, falhas e interrupções após o lançamento inicial. Esses entraves prejudicavam a experiência dos usuários e a eficiência das instituições de ensino, resultando numa insatisfação crescente, o que, por sua vez, ameaçava a reputação da empresa e a retenção de contratos importantes.
Para resolver esses problemas, a companhia precisou agir e implementou um programa abrangente de suporte e manutenção de sistemas. Estabeleceu suporte técnico 24/7 (24 horas por dia, 7 dias por semana) para atender prontamente aos problemas dos usuários, assim como realizou a manutenção corretiva para resolver bugs e falhas críticas de imediato e manutenção adaptativa para ajustar o sistema às novas tecnologias e requisitos de TI. Além disso, adotou a manutenção preventiva com atualizações regulares e melhorias, e começou a utilizar ferramentas avançadas de monitoramento contínuo para detectar precocemente anomalias e responder rapidamente às questões emergentes.
Com a implementação do programa de suporte e manutenção, a empresa estabilizou seu sistema de gestão acadêmica. Os tempos de resposta e a estabilidade do sistema melhoraram significativamente, resultando em uma experiência de usuário mais fluida e eficiente. A satisfação dos clientes aumentou, permitindo à empresa reter contratos importantes e atrair novos usuários. Sendo assim, como principal aprendizado desse relato, podemos destacar a importância de um suporte e manutenção proativos e contínuos para garantir o desempenho sustentável e a longevidade de sistemas de software críticos. Quem utiliza essa abordagem, assegura que seus produtos continuem a atender e a superar as expectativas dos clientes.
Agora, sabendo a importância desse conhecimento, entenderemos melhor os suportes e as manutenções de forma mais abrangente.
O suporte e a manutenção de sistemas são atividades essenciais no ciclo de vida dos sistemas de software. Eles desempenham papéis distintos, mas complementares, para assegurar que os sistemas operem de maneira contínua e eficiente após sua implementação inicial. Sommerville (2018) define que a manutenção de software é o processo geral de modificar um sistema após a sua entrega. Sendo assim, a manutenção de sistemas abrange uma série de atividades planejadas e sistemáticas realizadas após a entrega inicial do software. Seu objetivo é garantir que o sistema permaneça operacional, seguro, atualizado e em conformidade com as necessidades e exigências do ambiente em que opera.
Já o suporte de sistemas se refere ao conjunto de serviços e recursos destinados a garantir que os usuários de um sistema de software tenham assistência adequada para resolver problemas, responder a perguntas e maximizar o uso eficaz do sistema. Em outras palavras, envolve a prestação de suporte técnico contínuo, geralmente, por meio de uma central de atendimento ou help desk, em que usuários podem reportar problemas, solicitar orientações ou obter esclarecimentos sobre o funcionamento do software. Além disso, o suporte também pode incluir atividades como a instalação de atualizações, configurações de sistemas e troubleshooting para resolver problemas técnicos (Sommerville, 2018).
Tanto o suporte quanto a manutenção desempenham funções cruciais no sucesso a longo prazo de qualquer sistema de software, proporcionando uma base sólida para sua operação contínua, eficiente e relevante dentro de uma organização. Essas atividades são capazes de resolver problemas imediatos, o que contribui significativamente para a satisfação do usuário, redução de custos operacionais a longo prazo e garantia da longevidade do sistema.
Primeiramente, a mitigação de problemas é uma das principais funções do suporte e manutenção. Como sabemos, problemas técnicos, bugs e falhas podem ocorrer em qualquer sistema de software, independentemente de quão bem projetado seja. Sendo assim, precisamos sempre disponibilizar um suporte técnico que seja capaz de responder prontamente a essas ocorrências, oferecendo soluções rápidas para minimizar o impacto negativo nas operações diárias da organização. Esse contato com o suporte, além de restaurar a funcionalidade do sistema, também aumenta a confiança dos usuários, pois demonstra uma resposta eficaz e eficiente às suas necessidades.
Assim, além da mitigação de problemas, o suporte e a manutenção também são essenciais para aumentar a satisfação do usuário, uma vez que, geralmente, indivíduos que utilizam um software esperam que suas experiências sejam positivas e livres de interrupções significativas. Nesse sentido, um suporte contínuo e acessível garante que os usuários tenham um canal direto para relatar problemas, obter assistência técnica e orientação a respeito de como maximizar o uso do sistema. Em outras palavras, além de melhorar a eficiência operacional, o suporte ainda pode fortalecer o relacionamento entre a organização e seus usuários internos, promovendo uma experiência de usuário satisfatória e confiável.
Agora, pensando nos custos operacionais, investir em um programa de suporte e manutenção pode resultar em economias significativas a longo prazo. A correção proativa de problemas evita que pequenos contratempos se transformem em grandes crises que exigem intervenções emergenciais e custos. Além disso, a manutenção preventiva reduz o risco de falhas críticas, que poderiam resultar em perda de dados, interrupção dos serviços ou até mesmo danos à reputação da organização. Dessa forma, os custos associados à resolução de problemas são minimizados, permitindo que os recursos sejam direcionados a áreas estratégicas, que impulsionam o crescimento e a inovação.
Por fim, a longevidade do sistema é garantida por meio de práticas consistentes de suporte e manutenção. Isso, porque, à medida que o ambiente tecnológico evolui e novas demandas surgem, os sistemas de software precisam se adaptar para permanecerem relevantes e competitivos. A manutenção adaptativa garante que o sistema esteja alinhado com as mudanças nos requisitos operacionais e tecnológicos, mantendo sua eficiência e utilidade ao longo do tempo. Em outras palavras, conseguimos prolongar a vida útil do sistema, e como consequência disso, maximizar o retorno sobre o investimento inicial em desenvolvimento de software, assegurando que ele continue a suportar as operações críticas da organização de forma eficaz.
Podemos dizer, portanto, que o suporte e a manutenção são elementos essenciais para o sucesso a longo prazo de sistemas de software. Além de mitigar problemas imediatos, aumentar a satisfação do usuário, reduzir custos operacionais e garantir a longevidade do sistema, essas atividades promovem uma operação mais eficiente e confiável, contribuindo para o crescimento sustentável e a competitividade da organização no mercado. Dessa forma, investir em suporte e manutenção é mais que uma medida preventiva, é uma estratégia para a excelência operacional e a continuidade dos negócios.
Conforme dito na etapa da problematização, temos diferentes tipos de manutenção de sistemas que desempenham papéis específicos e complementares para garantir o desempenho contínuo e eficaz dos sistemas de software ao longo do tempo. Cada tipo de manutenção possui suas próprias finalidades e objetivos distintos. A seguir, veremos cada um dos tipos e suas especificações.
É focada na correção de falhas, erros e problemas identificados após a implantação do sistema. Seu principal objetivo é restaurar a funcionalidade do sistema o mais rapidamente possível, minimizando o impacto negativo nas operações da organização. Isso envolve diagnosticar a causa raiz do problema, desenvolver uma solução adequada e implementá-la de forma eficaz para evitar recorrências. A manutenção corretiva é essencial para garantir que o sistema continue operando de maneira confiável e que os usuários possam realizar suas tarefas sem interrupções significativas. Sommerville (2018) ressalta que erros de codificação costumam ser relativamente baratos de corrigir; as falhas de projeto e de requisito são mais caras, pois devem envolver a reescrita de vários componentes do programa assim como a necessidade de projetar novamente o sistema.
Envolve ajustes necessários para o sistema operar em um ambiente de TI em constante mudança. Isso inclui adaptações a novos requisitos de hardware, software ou mudanças nos requisitos de negócio da organização. O objetivo é garantir que o sistema permaneça compatível e eficiente diante das evoluções tecnológicas e das necessidades operacionais em evolução. A manutenção adaptativa pode incluir a atualização de interfaces de usuário, integrações com novas plataformas ou ajustes para melhorar a interoperabilidade com outros sistemas.
Visa melhorar o desempenho e a eficiência do sistema por meio de otimizações contínuas e aperfeiçoamentos. Esse tipo de manutenção busca maximizar a utilização dos recursos do sistema, reduzir tempos de resposta, melhorar a escalabilidade e otimizar processos internos. Isso pode incluir a revisão e otimização de algoritmos, a melhoria da interface do usuário para uma melhor experiência do usuário e a implementação de novos métodos ou técnicas que resultem em um sistema mais eficiente e eficaz.
É caracterizada por ações planejadas e sistemáticas para evitar a ocorrência de falhas e problemas futuros no sistema. Isso inclui atividades como atualizações regulares de software, revisões de segurança, backups frequentes de dados e monitoramento proativo do desempenho do sistema. O objetivo é identificar e resolver potenciais pontos fracos antes que se tornem problemas reais, garantindo assim a disponibilidade contínua do sistema e a proteção contra perda de dados ou interrupções operacionais não planejadas.
Conforme explorado, cada tipo de manutenção desempenha um papel na sustentação e otimização contínua dos sistemas de software ao longo do tempo. Combinadas, essas estratégias garantem a estabilidade e confiabilidade dos sistemas, assim como proporcionam uma base sólida para suportar as necessidades em constante evolução das organizações modernas.
O suporte técnico garante a operação contínua e eficiente dos sistemas de software, proporcionando assistência e resolução de problemas aos usuários finais. Os processos envolvidos no suporte técnico incluem diferentes níveis de suporte, metodologias de atendimento a incidentes e resolução de problemas, além disso, vale ressaltar a importância de um suporte técnico 24/7.
Fernandes e Abreu (2014) ressaltam também frameworks como o ITIL, um agrupamento das melhores práticas utilizadas para o gerenciamento de serviços de tecnologia da informação de alta qualidade, o que traz a melhoria do serviço como principal ferramenta contra o processo de suporte corretivo. Uma das ferramentas que o ITIL nos apresenta de grande importância para o processo de suporte técnico é o estabelecimento dos acordos de níveis de serviço ou SLA (Service Level Agreements) que definem tempo para determinados níveis de suporte e/ou serviços.
Outro fato importante trazido por Fernandes e Abreu (2014) é a implantação de inovações que ocorrem tanto no nível do processos de negócios quanto na questão de melhoria do suporte, pois ao relatar incidentes repetitivos, pode-se automatizar o processo e até mesmo inovar processos já consolidados, por exemplo, inovações em detecção de intrusão na rede e inovações aplicadas na automação de processos de negócio, como o reconhecimento biométrico.
A definição de políticas e procedimentos de suporte é fundamental para garantir a eficiência e a organização dos níveis de suporte técnico. Estabelecer políticas claras envolve definir os três níveis de suporte (primeiro, segundo e terceiro), especificando as responsabilidades de cada equipe e os protocolos de escalonamento entre esses estágios. Além disso, a documentação de metodologias para o atendimento de incidentes — desde a identificação e registro até a resolução e acompanhamento — assegura que todos os níveis operem de forma coordenada e com uma visão comum de metas, garantindo um suporte técnico ágil e eficaz.
Agora, para que essas informações acerca do processo de suporte técnico fiquem mais claras, vamos entendê-las de forma separada. Começando pelos níveis de suporte, eles são divididos em três, sendo eles:
Primeiro Nível de Suporte (Nível 1): é responsável por receber os incidentes e solicitações de serviço dos usuários finais. Os técnicos de primeiro nível são treinados para realizar diagnósticos iniciais, identificar problemas comuns e oferecer suporte básico. Eles podem resolver problemas simples diretamente ou escalar os casos mais complexos para níveis superiores de suporte.
Segundo Nível de Suporte (Nível 2): envolve técnicos com maior experiência e especialização técnica. Eles lidam com incidentes mais complexos que não foram resolvidos no primeiro nível. Os técnicos de segundo nível têm acesso a ferramentas e recursos mais avançados para diagnosticar problemas específicos e aplicar soluções mais técnicas e detalhadas.
Terceiro Nível de Suporte (Nível 3): é composto por especialistas altamente qualificados, como engenheiros de software ou desenvolvedores sênior. Eles lidam com problemas complexos que exigem conhecimentos profundos do sistema e, frequentemente, trabalham diretamente com o desenvolvimento de software para resolver problemas de código, integração ou desempenho avançado.
Para que consiga trabalhar com os níveis de suporte de maneira satisfatória, tanto para você quanto para o cliente, é necessária a identificação e catalogação dos componentes do sistema. Esse é o primeiro passo para uma gestão eficaz de infraestrutura e manutenção de software. Basicamente, esse processo envolve a identificação minuciosa de todos os elementos que compõem o sistema, quais sejam: hardware, software, middleware, bancos de dados e outras tecnologias integradas.
Cada componente deve ser catalogado em um inventário detalhado, que inclua informações como: versão, fornecedor, especificações técnicas e dependências. A criação desse inventário é essencial para garantir uma visão clara do ambiente tecnológico, facilitando o planejamento de atualizações, suporte e manutenção ao longo do ciclo de vida do sistema, e assegurando que todos os componentes estejam devidamente mapeados para futuras intervenções.
Já as metodologias de atendimento a incidentes e resolução de problemas são estruturadas em etapas para garantir que os problemas sejam identificados, diagnosticados e resolvidos de maneira eficiente. Confira, a seguir, as etapas detalhadas das metodologias de atendimento a incidentes e resolução de problemas:
Registro e triagem de incidentes: o processo começa com o registro de incidentes relatados pelos usuários finais. Cada incidente é triado para determinar sua prioridade e gravidade, garantindo que os problemas críticos sejam tratados com urgência.
Diagnóstico e análise: os técnicos realizam diagnósticos detalhados para identificar a causa raiz do problema. Isso pode envolver a coleta de informações adicionais dos usuários, revisão de logs de sistema e realização de testes para reproduzir o problema.
Resolução e implementação de soluções: com base na análise, as soluções são desenvolvidas e implementadas. Isso pode incluir a aplicação de patches de software, ajustes de configuração, atualizações de sistema ou recomendações para mudanças de procedimento.
Teste e verificação: após a implementação da solução, os técnicos realizam testes para verificar se o problema foi completamente resolvido e se o sistema está funcionando corretamente.
Encerramento e documentação: o incidente é fechado após a confirmação de que o problema foi resolvido satisfatoriamente. Todas as etapas do processo são documentadas para referência futura e para melhorar os procedimentos de suporte.
Como mencionado, também é preciso ressaltar a importância do suporte 24/7, mas antes disso, é preciso explicar no que consiste esse suporte. Quando falamos de suporte 24/7, referimo-nos a um serviço de assistência técnica que está disponível 24 horas por dia, 7 dias por semana, sem interrupções. Em outras palavras, os usuários podem contatar a equipe de suporte a qualquer momento do dia ou da noite, incluindo feriados e fins de semana, para obter ajuda com problemas técnicos, questões relacionadas ao sistema ou outras necessidades de suporte. Esse tipo de suporte é fundamental para garantir a continuidade operacional de sistemas críticos e para atender às demandas de usuários que podem operar em diferentes fusos horários ou que precisam de assistência imediata em situações emergenciais.
Assim, quando pensamos em um suporte 24/7, podemos ressaltar os seguintes benefícios:
Disponibilidade contínua: problemas podem surgir a qualquer momento, e um suporte 24/7 garante que os usuários tenham acesso imediato à assistência técnica, independentemente do horário.
Redução de tempo de inatividade: ao responder rapidamente a incidentes críticos, o suporte 24/7 minimiza o tempo de inatividade do sistema, garantindo operações contínuas e maximizando a produtividade.
Melhoria na experiência do usuário: a capacidade de resolver problemas rapidamente melhora a experiência do usuário final, aumentando a confiança no sistema e na organização que o suporta.
Prevenção de problemas graves: a detecção precoce e a resolução rápida de problemas menores podem prevenir a ocorrência de falhas graves que poderiam resultar em perda de dados ou interrupções significativas.
Em resumo, podemos concluir que o suporte técnico não apenas resolve problemas técnicos na manutenção da confiabilidade, desempenho e funcionalidade contínua dos sistemas de software. Um suporte técnico eficaz – especialmente quando disponível 24/7 – assegura a satisfação do usuário e o sucesso operacional a longo prazo de qualquer organização que depende de sistemas de software para suas operações críticas.
A automação do monitoramento contínuo é uma prática essencial para garantir o funcionamento eficiente de softwares, permitindo a detecção precoce de falhas e o acompanhamento do desempenho em tempo real. Ferramentas de monitoramento automatizado, como Prometheus (clique aqui para acessar), Nagios (clique aqui para acessar) e Zabbix (clique aqui para acessar), são amplamente utilizadas para rastrear métricas críticas, como consumo de recursos, tempos de resposta e integridade do sistema.
Essas ferramentas podem ser configuradas para gerar alertas automáticos quando determinados parâmetros ultrapassam limites predefinidos, facilitando a intervenção rápida. Além disso, a automação permite a coleta e análise de dados históricos, auxiliando na previsão de problemas futuros e na otimização contínua do software, aumentando a confiabilidade e disponibilidade dos sistemas.
A formação e o treinamento da equipe de suporte são fundamentais para garantir a eficiência no processo de manutenção e suporte de software. Uma equipe bem treinada é capaz de diagnosticar problemas com agilidade, aplicar soluções apropriadas e seguir protocolos de escalonamento quando necessário. Sendo assim, os treinamentos devem abranger tanto conhecimentos técnicos acerca dos sistemas e das ferramentas utilizadas quanto habilidades de comunicação para atender os usuários de forma eficaz. Além disso, a atualização contínua é importante para que a equipe acompanhe as evoluções tecnológicas e novas metodologias de suporte, garantindo a qualidade do serviço prestado.
Para garantir a qualidade e eficiência ao longo do tempo, é necessário todo um processo de avaliação e melhoria dos atendimentos e/ou incidentes de suporte. Isso envolve monitorar regularmente o desempenho dos processos, identificar pontos de melhoria e implementar ajustes para otimizar o atendimento e a resolução de problemas. Portanto, ferramentas de monitoramento, métricas de desempenho e feedback dos usuários são fundamentais para avaliar a eficácia das soluções aplicadas.
De maneira geral, a busca pela melhoria contínua permite que o suporte se adapte a novas demandas tecnológicas e de mercado, garantindo que os sistemas permaneçam estáveis, seguros e atendam às expectativas dos usuários.
Enquanto técnico em desenvolvimento de sistemas, compreender os diferentes tipos de manutenção – corretiva, adaptativa, perfeita e preventiva – permite que você antecipe problemas, melhore a eficiência e garanta a continuidade operacional dos sistemas após sua implementação inicial. Sendo assim, esse conhecimento será muito útil em seu dia a dia profissional, visto que lhe capacita a implementar estratégias de suporte que resolvem falhas imediatas e adaptam os sistemas às novas demandas tecnológicas, evitando problemas futuros.
Agora, que tal trabalhar com o suporte e a manutenção de um sistema? Você poderá usar um software fictício ou qualquer outro que conheça e tenha acesso. Chame seus colegas e professores para esse desafio e siga os passos indicados a seguir:
Identificação e catalogação dos componentes do sistema: comece identificando e catalogando todos os componentes do sistema de software. Isso inclui: hardware, software, middleware, bancos de dados e quaisquer outras tecnologias integradas. Crie um inventário detalhado que inclua versões, fornecedores e especificações técnicas. Essa etapa é fundamental para entender o que precisa ser mantido e suportado.
Definição de políticas e procedimentos de suporte: estabeleça políticas claras e procedimentos para o suporte técnico. Isso deve incluir a definição dos níveis de suporte (primeiro, segundo e terceiro nível), as responsabilidades de cada equipe e os protocolos de escalonamento. Documente metodologias de atendimento a incidentes, desde a identificação e registro até a resolução e acompanhamento.
Implementação de ferramentas de monitoramento: indique qual ferramenta poderá ser utilizada e quais as possíveis configurações de monitoramento contínuo deverão ser aplicadas para acompanhar o desempenho e a integridade do sistema. Esses recursos devem ser capazes de detectar anomalias, falhas e possíveis pontos de melhoria. Não se esqueça de incluir configurações de alertas automáticos para notificar a equipe de suporte acerca de qualquer irregularidade ou problema crítico.
Realização de manutenção corretiva: estabeleça um processo para a realização de manutenção corretiva, focando na correção de falhas e erros identificados. Cada incidente deve ser registrado em um sistema de gerenciamento de incidentes, detalhando a natureza do problema, a solução aplicada e o tempo de resolução. A manutenção corretiva deve ser imediata para minimizar o impacto nas operações do sistema.
Execução de manutenção adaptativa: aponte ajustes no sistema para acomodar mudanças no ambiente de TI, como atualizações de hardware, software e requisitos de negócios. Faça uma revisão periódica para identificar necessidades de adaptação e implemente as mudanças necessárias para garantir que o sistema continue operando eficientemente em um ambiente em constante evolução ou outra diretiva alinhada à manutenção adaptativa.
Aplicação de manutenção perfeita: sinalize procedimentos para busca de melhorias contínuas no desempenho e na eficiência do sistema por meio da manutenção perfeita. Isso pode incluir otimizações de código, reconfiguração de sistemas e aprimoramentos de processos. Documente todas as melhorias e teste exaustivamente para assegurar que as mudanças resultem em benefícios tangíveis sem introduzir novos problemas.
Planejamento de manutenção preventiva: desenvolva um plano de manutenção preventiva, que inclui atualizações regulares de software, patches de segurança e revisões periódicas do sistema. Agende essas atividades de forma a minimizar a interrupção das operações e mantenha um registro detalhado de todas as ações preventivas realizadas.
Formação e treinamento da equipe de suporte: assegure-se de que a equipe de suporte está bem treinada e atualizada sobre as últimas práticas de suporte e manutenção. Realize treinamentos regulares e workshops para desenvolver habilidades e conhecimentos necessários para lidar com incidentes e realizar manutenções eficazes.
Criação de documentação de suporte: desenvolva uma documentação abrangente de suporte, incluindo manuais de usuário, guias de resolução de problemas, procedimentos operacionais padrão e FAQ (Frequently Asked Questions). Mantenha essa documentação acessível e atualizada para que a equipe de suporte possa consultá-la sempre que necessário.
Avaliação e melhoria contínua: crie um processo de avaliação contínua para revisar e melhorar suas estratégias de suporte e manutenção. Colete feedback dos usuários e da equipe de suporte para identificar áreas de melhoria. Realize auditorias regulares e ajustamentos baseados nas lições aprendidas e nas melhores práticas do setor.
A aplicação dessa rotina de verificação de suporte e manutenção garantirá que o sistema de software permaneça eficiente, seguro e funcional, atendendo às necessidades operacionais e aos requisitos dos usuários. Bons estudos!
FERNANDES, A.; ABREU, V. Implantando a Governança de TI: da estratégia à gestão de processos e serviços. 4. ed. Rio de Janeiro: Brasport, 2014.
SOMMERVILLE, I. Engenharia de Software. 10. ed. São Paulo: Pearson, 2018.