From 0111cefcd131e0297dbcf8b5bdacd16cbfb01dc7 Mon Sep 17 00:00:00 2001 From: SIDNEI DOS SANTOS <142917005+Rayka-Hyushi@users.noreply.github.com> Date: Wed, 24 Sep 2025 15:16:10 -0300 Subject: [PATCH] =?UTF-8?q?Expandir=20conte=C3=BAdo=20sobre=20qualidade=20?= =?UTF-8?q?de=20software?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adiciona seções sobre liberdade de risco e portabilidade, incluindo diretrizes e exemplos para melhorar a qualidade do software. --- capitulos/QUALIDADE_DE_SOFTWARE.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/capitulos/QUALIDADE_DE_SOFTWARE.md b/capitulos/QUALIDADE_DE_SOFTWARE.md index 7dd14ad..b187c53 100644 --- a/capitulos/QUALIDADE_DE_SOFTWARE.md +++ b/capitulos/QUALIDADE_DE_SOFTWARE.md @@ -27,9 +27,19 @@ e mensurar os aspectos de qualidade, sendo o modelo de qualidade propriamente. 4. **Liberdade de risco:** O software, ao ser usado, oferece riscos à integridade do usuário? 5. **Cobertura de contexto:** O software funciona sob diferentes condições de uso? - escavadeira +### Liberdade de risco + +Ao desenvolver um software, para qualquer área de atuação que seja, é importante determinar os riscos que a utilização desse software pode oferecer ao usuário. Softwares com possibilidade de aquisição de itens pagos, como sites de compra e venda, podem oferecer riscos de golpes aos compradores e vendedores, por exemplo. Portanto, durante o desenvolvimento de um software com esse recurso, é necessário pensar em formas de garantir que o comprador vai receber seu produto e o vendedor vai receber seu dinheiro. Porém, além de pensar nos riscos ao usuário, deve-se pensar nos riscos durante o desenvolvimento, como a possibilidade de bugs, invasões ao ambiente de desenvolvimento e o processo de implementação. Durante o desenvolvimento, os seguintes tópicos devem ser pensados cuidadosamente: + +1. **Ambiente de desenvolvimento seguro:** o controle e integridade do processo de desenvolvimento deve ficar restrito ao time de desenvolvedores, sem influência externa capaz de executar alguma mudança inesperada no ambiente. +2. **Gestão de código fonte:** contar com uma ferramente de gerenciamento garante maior integridade e organização do código fonte, evitando erros quanto à versão colocada em produção. +3. **Testes e validação:** são etapas necessárias para verificar o comportamento e funcionamento de trechos do código antes da implementação final. +4. **Gestão e correção de bugs:** a documentação e correção dos possíveis bugs é imprescindível para evitar ocorrências semelhantes no futuro. +5. **Integração contínua:** processo que entrega mais qualidade ao software, por automatizar verificações e gerar novos releases. +6. **Documentação do software:** se feita de maneira clara, objetiva e bem estruturada, é uma prática que traz mais qualidade ao processo de desenvolvimento. Isso facilita a ampliação e a melhoria futura. + ## Qualidade do Produto Novamente, é subdividida em oito categorias, definidas pela ISO 25010: @@ -45,6 +55,19 @@ Novamente, é subdividida em oito categorias, definidas pela ISO 25010: relógio de luxo +### Portabilidade + +A portabilidade de um software se refere a capacidade do mesmo de operar normalmente em outros dispositivos ou softwares. Para medir a portabilidade de um software, deve-se analisar os seguintes aspectos: + +1. **Adaptabilidade:** Avalia a capacidade de software de ser adaptado a diferentes plataformas (hardwares ou softwares) sem grandes alterações. Exemplo: Quais alterações são necessárias para que o software funcione corretamente no Windows, MacOS e Android. +2. **Facilidade de instalação:** Mede a simplicidade e a flexibilidade do processo de instalar e desinstalar o software. Exemplo: Quão fácil é a instalação e desinstalação do software em diferentes dispositivos e sistemas. +3. **Capacidade de substituição:** Determina o quão fácil é substituir o software por outro que desempenhe a mesma função. Exemplo: Microsoft Office e LibreOffice realizam as mesmas funções, porém o Microsoft Office se destaca por ser mais completo, possuir integração com outros serviços da empresa, melhor compatibilidade com arquivos de diversos tipos, ser de uma marca muito conhecida, entre outros. +4. **Coexistência:** Refere-se a capacidade do software de compartilhar recursos do sistema sem conflitos com outros softwares. Exemplo: O software deve conseguir funcionar em conjunto com outros softwares do sistema sem causar conflitos, bugs ou falhas no sistema, lentidão ou sobrecarga de uso dos recursos do hardware. + +### Como melhorar a portabilidade de um software? + +Para melhorar a portabilidade de um software e permitir seu funcionamento em outros hardwares e softwares, é uma boa estratégia criar o software com padrões amplamente aceitos e com suporte em diversas plataformas. A linguagem Java, por exemplo, permite a portabilidade entre sistemas operacionais através do sistema Java Virtual Machines, facilitando a portabilidade. Além disso, reduzir dependências diretas com a plataforma, onde o sistema está sendo desenvolvido, como através de camadas de abstração que desacoplam o código das especificidades do sistema operacional. Por fim, é muito importante realizar testes do software em diferentes plataformas durante o processo de desenvolvimento, para identificar problemas de portabilidade desde o início. + ## Como mensurar a qualidade? A maneira de mensurar qualidade depende do que a equipe de desenvolvimento definir junto com o cliente. Não existem critérios rígidos, e