Comentários

0%

Não pode faltar

Introdução à qualidade de software

Sergio Eduardo Nunes

Importância da qualidade de software 

Os conceitos de qualidade de software estão ligados aos métodos, às ferramentas, aos processos e às medições, os quais guiam a equipe de desenvolvimento de forma mais assertiva e garantem que a entrega seja feita dentro dos padrões de qualidade estabelecidos entre as partes.

Fonte: Shutterstock.

Deseja ouvir este material?

Áudio disponível no material digital.

Convite ao estudo  

Caro aluno, certamente você já deve ter procurado um aplicativo para resolver determinado problema, ou comprado um serviço ou produto, que, quando foi entregue, estava muito aquém do esperado. Pois bem, como usuário você deve ter percebido que sua concepção sobre a empresa, após a decepção, mudou radicalmente. Porém, nesse momento, seu papel não é mais o de usuário, mas o de desenvolvedor, o qual deve utilizar as técnicas de desenvolvimento de software para evitar tais situações.

Uma das técnicas para esse fim está relacionada com a qualidade de software e com suas ferramentas. Essa área do conhecimento da engenharia de software se preocupa em utilizar métodos, processos e normas nas atividades de desenvolvimento de software, a fim de se agregar qualidade nos processos e produtos finais. Para isso, é necessário que se tenha conhecimentos acerca de qualidade de software, qualidade do produto e qualidade dos processos. Como você pode ter percebido, existem diversas competências necessárias para se garantir a qualidade de um desenvolvimento.

Na primeira seção desta unidade de ensino, você compreenderá os conceitos gerais envolvidos na qualidade de software e aprenderá a identificar os problemas relacionados. Após isso, será possível entender como a garantia da qualidade e as métricas de qualidade são utilizadas em projetos de desenvolvimento de software, a fim de se gerar benefícios durante todo o ciclo de vida do projeto.

Na segunda seção, será possível que você compreenda como os modelos de qualidade são utilizados. Em seguida, será discutido como a norma ISO 9126 pode ser utilizada tal qual uma metodologia guia para a qualidade do produto de software. Enfim, você entenderá como a gestão da qualidade do produto é feita e como as medições, os requisitos e as avalições da qualidade dos produtos são executadas nos projetos de desenvolvimento.

E na terceira seção desta unidade de ensino, o foco estará nas discussões acerca da qualidade dos processos. Para isso, assuntos como modelos de maturidade, normas ISO na qualidade do processo, melhorias individuais e de equipe são primordiais para que você entenda de que forma essas técnicas são utilizadas nas atividades de desenvolvimento de software. Enfim, você aprenderá sobre a melhoria de processos de software no Brasil.

Todas essas discussões em caráter profissional farão com que você adquira competências para utilizar modelos, métodos, processos e normas a fim de garantir a qualidade nos processos de desenvolvimento de software e em produtos e serviços que atendam a qualidade e os padrões estabelecidos. Isso é de extrema importância para aqueles profissionais diretamente ligados a atividades de desenvolvimento de software, pois grande parte das empresas espera que os profissionais possuam tais competências. Pronto para mais esse desafio?

Praticar para aprender

Caro aluno, os aspectos ligados à qualidade estão na grande maioria de produtos e serviços que você utiliza em sua casa. Mas como isso se relaciona à qualidade de software? Analise a seguinte situação: uma pessoa fez uma filmagem no smartphone dela, mas deseja editar o vídeo, de forma que possa cortar algumas partes e remover o áudio. Após baixar diversos aplicativos e testar muitos deles, o vídeo foi danificado e não é mais possível fazer a sua restauração. Você não acha isso muito grave?

Pois bem, talvez esse vídeo tenha sido algo casual, mas e se fosse uma filmagem de festa, batizado, casamento, formatura, etc.? A perda para o usuário talvez fosse irrecuperável. Esse é apenas um exemplo dos inúmeros erros que podem ser encontrados em softwares para diversos dispositivos. O que um profissional de tecnologia da área de desenvolvimento pode fazer para que tais situações sejam evitadas? A resposta a essa pergunta será vista nesta seção de estudos.

Você compreenderá a importância da qualidade de software para a garantia de entregas mais assertivas, sendo possível detectar erros, falhas, defeitos e bugs em projetos de software. Com isso, será possível que a garantia da qualidade sirva como guia nos processos de desenvolvimento, possibilitando que sejam utilizadas as métricas para aferir a qualidade dos processos, serviços e produtos, de forma que se compreendam os benefícios gerados por tais ferramentas.

Exemplificando

Profissionalmente, esses conhecimentos permitirão que você adquira competências importantes para serem aplicadas dentro dos projetos de desenvolvimento de software. Como desenvolvedor, você utilizará métodos, modelos e normas para garantir a qualidade dos seus desenvolvimentos. Já como gestor de projetos, deverá utilizar tais conhecimentos e ferramentas a fim de guiar o time de desenvolvimento a realizar as atividades de forma mais assertiva e dentro dos padrões de qualidade esperados.

As web rádios são uma forma interessante de prover serviços idênticos aos de radiodifusão (por antena). Seu meio de transmissão ocorre por uma infraestrutura de redes de computadores e, para isso, é necessário ter um host, no qual uma aplicação é instalada e configurada para que a web rádio possa ter as programações disponíveis aos usuários. Com essa facilidade, diversos seguimentos têm optado por adquirir uma dessas.

O time de futebol da cidade, preocupado com a falta de transmissão de seus jogos na TV aberta ou nas emissoras de rádio, encontrou uma solução interessante na web rádio para dar visibilidade ao time. Os diretores levaram a discussão ao conselho e, após aprovado, o setor de mídias foi autorizado a buscar uma empresa para fazer o desenvolvimento do projeto.

A empresa na qual você trabalha está no mercado de desenvolvimento há mais de dez anos e entre os projetos estão sites institucionais, blogs, sistemas web e rádios web. Nos últimos meses, você tem trabalhado na área de desenvolvimento de front-end tanto para sistemas quanto para sites estáticos. O gerente do seu setor vem há tempos introduzindo a ideia de se utilizar algum framework para a garantia da qualidade em projetos de desenvolvimento de software.

Ao saber do projeto da web rádio para o time da cidade, o gerente de projetos da área de desenvolvimento front-end procurou se preparar para utilizar uma ferramenta cuja ação, nos processos desse projeto, funcionaria como guia garantidor de qualidade.

Sabendo que você tem estudado acerca da qualidade de software, o gerente fez a seguinte solicitação em seu e-mail:

Caro,

Estamos iniciando o projeto da web rádio e desejamos utilizar ferramentas para a garantia da qualidade. Como você havia comentado que estava estudando a respeito do tema, vamos necessitar de suas competências.

Para isso, gostaria que você desenvolvesse um checklist para front-end com os elementos: HEAD, HTML, WEBFONTS, CSS (Cascading Style Sheets) e SEO (Search Engine Optimization). As entradas que você apontar para cada um dos itens serão utilizadas por toda a equipe como uma ferramenta de qualidade dentro da nossa área. Conto com você!

Grato,

Gerente de Projetos. 

O gerente de projetos quer inovar dentro da empresa e você tem a oportunidade de alavancar sua carreira junto com ele. Agora é o momento de mostrar os conhecimentos adquiridos acerca de qualidade de software.

Dica

Você ficou curioso para saber como essas técnicas poderão proporcionar benefícios aos seus desenvolvimentos? E também em termos profissionais? Explore todos os conhecimentos discutidos nesta seção e o mais importante: aplique-os. Acredite, você se tornará um grande profissional com tais conhecimentos!

conceito-chave

Caro aluno, certamente alguma vez na vida você já deve ter adquirido um produto ou serviço, o qual, no momento da compra, parecia perfeito, mas, ao utilizá-lo, as coisas acabaram saindo bem diferente do prometido. Como consumidor, isso traz muita frustração. E isso não é uma exclusividade da Tecnologia da Informação. Corriqueiramente, ocorre também na telefonia, na alimentação, no e-commerce, na entrega de encomendas, de roupas, etc.

Qualidade de software

No que se diz respeito à desenvolvimento de softwares, a qualidade visa basicamente atender as necessidades e expectativas do cliente, a fim de cumprir os requisitos acordados no início do projeto de desenvolvimento de software. O tema é bem mais abrangente do que essa simples definição e é isso que torna os assuntos relacionados à qualidade de software de extrema importância para os profissionais de T.I.

Segundo Zanin et al. (2018), a qualidade de software está ligada aos aspectos de conformidade com os requisitos funcionais e não funcionais encontrados nos desenvolvimentos de softwares. Para compreender melhor, observe a definição dos requisitos:

Mas, enfim, o que é qualidade?

Diz respeito aos métodos, às ferramentas, às metodologias e aos processos os quais garantirão que determinada entrega seja feita dentro dos padrões de qualidade estabelecidos entre as partes. Todo esse processo se inicia no levantamento de requisitos, quando o cliente passa para a equipe de desenvolvimento todas as suas necessidades. 

Para visualizar o objeto, acesse seu material digital.

Levantamento de requisitos. 
Requisitos funcionais: refletem a visão do usuário quanto ao funcionamento de determinada função dentro do software.
Requisitos não funcionais: refletem a visão do desenvolvedor. A partir deles são determinados tanto o funcionamento técnico das funcionalidades quanto os mecanismos e os desempenhos esperados.

Compreender os requisitos permite entender de que forma os aspectos relacionados à qualidade de software estão intimamente ligados com os processos de desenvolvimento. Para Pressman (2006), o ciclo de desenvolvimento de um software é dividido em seis partes, conforme pode ser observado na Figura 2.1.

Figura 2.1 | Ciclo de desenvolvimento de software
A figura ilustra o ciclo de desenvolvimento de software representado por seis setas, da esquerda para a direita, cada uma com os respectivos textos: Avaliação, Análise, Projeto, implementação, Teste e Manutenção.
Fonte: elaborada pelo autor.

Em todo o ciclo de vida do projeto, podem ser utilizadas as ferramentas de garantia da qualidade, ou seja, nos processos de desenvolvimento, teste, validações, correções, enfim, em qualquer parte que venha a compor um projeto de desenvolvimento. É importante lembrar também que essas metodologias de garantia da qualidade necessitam de parâmetros, de métricas, que podem variar conforme métodos, necessidades, recursos, etc.

Ainda segundo o autor, o termo qualidade de software pode ser definido como o atendimento das conformidades funcionais com um desempenho esperado pelo patrocinador. Porém, para Sommerville (2011), a qualidade nas atividades de desenvolvimento de software deve ser mais abrangente, devendo ser gerenciada e compreendida em três níveis:

  1. Organizacional: a preocupação é de um nível mais amplo, no qual o objetivo é o estabelecimento de padrões de trabalho de desenvolvimento de software. Esses frameworks devem agrupar as melhores práticas para que os erros e falhas sejam minimizados.
  2. Projeto: envolve o desenvolvimento com base em padrões determinados por gestores de projetos. Isso pode variar conforme o projeto, a política da empresa, a utilização de frameworks, entre outras peculiaridades.
  3. Planejamento: deve haver um plano de qualidade, ou seja, parte da equipe deve ficar responsável pela verificação dos requisitos de qualidade acordados entre as partes. Tanto os processos quanto os produtos desenvolvidos devem ser revisitados afim de se evitar que algo passe despercebido.

Caro aluno, para especificar de maneira mais clara alguns aspectos que podem impactar diretamente no quesito qualidade, observe de que formas eles podem se apresentar.

Falhas de software

Segundo Zanin et al. (2018), a falha de software pode ser um comportamento inesperado do sistema e pode ser ocasionado por um ou mais erros. Para melhor compreensão de como a falha de software pode afetar um sistema, observe a Figura 2.2.

Figura 2.2 | Falha de software
A imagem mostra uma tela de cadastro de cliente com uma caixa com uma mensagem de erro: Erro inesperado! Desejada reportar? E os botões Sim e Não.
Fonte: captura de tela de um software em desenvolvimento elaborada pelo autor.

Nesse exemplo, acima do aceite, o sistema retorna uma mensagem de erro, impedindo, assim, que um novo cliente seja cadastrado, pois a falta da confirmação do aceite que impede a finalização do processo. Isso, a nível de usuário, é bem impactante. Imagine que esse sistema seja de uma loja de departamentos, a qual depende desse sistema para gerar as vendas e as notas fiscais. Certamente o prejuízo seria muito grande e preocupante.

Vale aqui ressaltar que o desenvolvedor é o responsável pela implementação das rotinas que cuidam das tratativas para falhas e erros. Elas podem ser exibidas por meio de uma mensagem ao usuário, podem levar a uma página nova com alguma imagem que remeta a falhas e erros ou podem, ainda, utilizar um report para enviar os problemas a algum repositório, com o intuito de que os desenvolvedores ajustem o sistema.

Erros de software

Segundo Zanin et al. (2018), grande parte dos erros de software estão relacionados a execuções incorretas, o que faz com que os resultados gerados não reflitam a verdade. Um exemplo pode ser observado na Figura 2.3.

Figura 2.3 | Erro de software
A imagem mostra uma tela com algumas informações: 2 clientes,  2 processos, 22/09/2020. E na parte inferior da tela, há a barra de tarefas do sistema operacional com alguns ícones, hora 15:51 e data 21/09/2020.
Fonte: captura de tela de um software em desenvolvimento elaborada pelo autor.

Observe, nesse exemplo, a data do sistema e a data marcada no relógio. O erro de data no sistema pode ter um impacto muito grande na integridade dos seus dados, fazendo com que os lançamentos não sejam confiáveis quanto a sua data. Isso para setores de venda, logísticos, contábeis e fiscais pode ser desastroso.

Defeito de software

Segundo Zanin et al. (2018), o defeito de software se refere a uma implementação incorreta, que ocasiona um erro, uma interrupção de serviço ou, ainda, um mal funcionamento. Um exemplo pode ser um sistema de cadastro que, após o preenchimento de todos os campos obrigatórios, executa o processo de inserção de dados, não retorna erros, porém não faz a inserção das informações no banco de dados.

Quanto às atividades de desenvolvimento, os defeitos são mais difíceis de se encontrar, pois, em alguns casos, erros de lógica, de falha de escrita do código ou de qualquer outra referência não retornam para auxiliar o desenvolvedor a encontrar o problema.

Bugs

Esse termo se popularizou entre os jovens para fazer referência a comportamentos inesperados de softwares. Segundo Zanin et al. (2018), um bug de sistema diz respeito a erros e falhas inesperados, que normalmente são de maiores complexidades e demandam mais tempo e conhecimento técnico para que sejam encontrados e solucionados.

Exemplificando 

Um bug que tirou o sono de muitos administradores de sistemas foi o bug do milênio. Em 1999, os profissionais estavam preocupados com o comportamento dos sistemas na virada de ano, porque os sistemas antigos faziam a leitura apenas dos dois últimos dígitos do ano. Com isso, em vez de o sistema ir para o ano 2000, poderia voltar para o 1900. Por isso o nome Bug do Milênio.

Esse acontecimento foi veiculado em muitos meios de comunicação, como no site G1:

SANDERS, N. Há 20 anos, o ‘bug do milênio’ e o fim do mundo que não aconteceu. G1, São Paulo, 31 dez. 2019.

Caro aluno, agora que você compreendeu como a qualidade de software está profundamente relacionada com os processos de desenvolvimento computacionais, certamente virá aquela dúvida clássica: mas de que forma podemos garantir a qualidade de um software? Para que você possa compreender os aspectos relacionados à garantia da qualidade dos softwares, neste momento, procure ter uma visão além das funcionalidades, do desempenho, da escalabilidade, etc. Assim, pode-se incluir a qualidade dos processos para desenvolvê-los, testá-los e liberá-los para utilização.

Garantia da qualidade

Sommerville (2011) mostra que a garantia da qualidade é conhecida como Software Quality Assurance (SQA). A sua abrangência se estende por todo o ciclo de vida do projeto de desenvolvimento de software e deve:

Para Pressman (2006), a garantia da qualidade diz respeito aos procedimentos, métodos e ferramentas utilizados por profissionais de Tecnologia da Informação para se garantir padrões acordados entre as partes durante todo o ciclo de vida do desenvolvimento de um software. É importante lembrar que os padrões de qualidade podem variar conforme o projeto e, por isso, a garantia da qualidade deve ser guiada pelo que foi acordado entre as partes.

Com o intuito de que você possa compreender melhor como a garantia da qualidade é, de fato, operacionalizada em atividades de desenvolvimento em um meio profissional, vamos analisar um case. Imagine que foi solicitado por um escritório de advocacia um programa para gerenciar os processos advocatícios. Em primeiro lugar, foi dito que tanto os advogados quanto os clientes deverão fazer login no sistema por um único local e de forma transparente. Tempos depois foi apresentada a tela de login ao cliente, conforme pode ser observado na Figura 2.4.

Figura 2.4 | Tela de login
A imagem mostra uma tela de login, na caixa selecione o acesso, há dois perfis de usuário: advogado e cliente. Há o campo senha, o botão Entrar, links: cadastro e esqueceu a sua senha?
Fonte: captura de tela de um software em desenvolvimento elaborada pelo autor.

Repare que o acordo entre as partes era o login transparente. Dessa forma, o menu dropdown para escolher o tipo do usuário não deveria ter sido utilizado na tela. A garantia da qualidade deve utilizar as ferramentas para detectar o problema, pois esse ajuste tem um impacto tanto no desenvolvimento do front-end quanto no do back-end, porque a lógica para se efetuar um login no sistema muda completamente.

Caro aluno, certamente você deve estar pensando que, para determinar se algo está atendendo à qualidade, deve haver métricas. Pois bem, em qualidade de software também existem regras definidas, que fornecem formas de avaliar se os processos e produtos estão dentro da qualidade acordada entre as partes.

Segundo Zanin et al. (2018), as diversas engenharias utilizam o processo de medição, para verificar se determinado desenvolvimento está em conformidade e segurança para ser utilizado. Porém, diferentemente das demais áreas de conhecimento, a engenharia de software não utiliza leis quantitativas ou medidas absolutas, mas um conjunto de medidas que dão um feedback quanto aos aspectos qualitativos do software.

Boehn, Brown e Lipow (1977) determinam que, para efetuar a medição da qualidade de um software, deve-se determinar quais são as funcionalidades que devem/podem ser medidas e de que forma precisam ser medidas. A fim de orientar os desenvolvedores no alinhamento das métricas, os autores sugerem o esquema demonstrado na Figura 2.5.

Figura 2.5 | Árvore de características de qualidade de software

Para visualizar o objeto, acesse seu material digital.

A imagem mostra uma estrutura de árvore com as características de qualidade de software. No início está o texto: Utilidade geral, dele saem 3 setas para os textos: Portabilidade, Usabilidade e Manutenibilidade. 
De Usabilidade saem três setas: para os textos Confiabilidade, Eficiência e Engenharia Humana.

De Manutenibilidade saem três setas, para os textos: Facilidade de Teste, Facilidade de Entendimento e Facilidade de Modificação.

De Portabilidade saem duas setas para os textos Independente Device e Auto Contido.

De Confiabilidade saem setas para os textos: Auto Contido, Precisão, Completude, Robustez/Integridade e Consistência.

De Eficiência saem setas para os textos Facilidade de Medição, Eficiência de Device e Facilidade e Facilidade de Acesso.

De Engenharia humana saem setas para os textos Robustez/Integridade, Facilidade de Acesso e Facilidade de Comunicação.

De Facilidade de teste saem setas para os textos Facilidade de medição, Facilidade de Acesso, Facilidade de comunicação, auto descritivo, Conciso.

De Facilidade de entendimento saem setas para os textos Estruturado, Conciso e Legível.

De Facilidade de modificação saem setas para os textos Estruturado e Extensibilidade.

Fonte: Boehn, Brown e Lipow (1977, p. 593).

Em sua estrutura mais alta, o software deve possuir elementos como usabilidade e manutenibilidade. E, em sua estrutura média, a portabilidade, a confiabilidade, a eficiência, a engenharia humana, a facilidade de teste, a facilidade de entendimento e a facilidade de modificação. Dessa estrutura média, derivam as primitivas (que dão as características dos elementos de nível médio). As primitivas podem ser verificadas por meio de checklists, ou seja, representam a atividade de desenvolvimento em si, que deve ser verificada quanto ao atendimento da garantia da qualidade.

Você deve ter percebido que essa ferramenta é bem complexa, mas observe como ela auxilia na atividade de encontrar problemas relacionados à qualidade de software. Para isso, observe a Figura 2.6.

Figura 2.6 | Cadastro do cliente
A imagem mostra duas capturas de tela, uma do sistema no navegador e outra do sistema no mobile. Na primeira os textos do menu estão na horizontal: Usuário, Clientes e Produtos. Depois mostra o título usuários, abaixo e em azul o link Novo usuário. E em seguida três colunas com nome, email e senha de dois usuários. Na segunda os textos do menu estão na vertical, um abaixo do outro: Usuário, Clientes e Produtos. Depois mostra o título usuários, abaixo e em azul o link Novo usuário. E em seguida três colunas com nome, email e senha de dois usuários, mais grudados do que na versão do navegador.
Fonte: captura de tela de um software em desenvolvimento elaborada pelo autor.

Nesse exemplo, o sistema de cadastro está com a funcionalidade de adicionar um novo usuário e exibir os cadastrados no sistema. Do lado esquerdo é apresentada a exibição desse sistema em navegador de desktop, já do lado direito está a apresentação em um smartphone. Com isso, vamos utilizar a árvore de qualidade de software apresentada na Figura 2.5 para analisar esse cenário.

No primeiro caminho: Utilidade geral  Portabilidade  Independente do dispositivo, já se observa que o software apresenta um problema de responsividade, o que demonstra que o sistema não é portável.

Outro exemplo em que a qualidade é atendida pode ser verificado no caminho: Utilidade Geral  Usabilidade  Confiabilidade  Precisão. Isso ocorre, pois, quando uma transação de inserção de dados é feita, a operação se completa corretamente.

Assimile

Checklist é uma ferramenta de grande importância para profissionais de desenvolvimento. Existem softwares que auxiliam o desenvolvedor nessas tarefas. Neles é possível detalhar as atividades do checklist, determinar a quantidade de tempo e ajustar as atividades predecessoras e sucessoras.

Caro aluno, você percebeu como os processos de qualidade de software são de extrema importância para os desenvolvimentos? Com esses estudos, foi possível compreender que, ao se utilizar as técnicas e ferramentas de forma adequada, serão alcançados alguns benefícios. E quais são esses benefícios encontrados nos processos de qualidade de software?

Segundo Sommerville (2011), as vantagens encontradas ao se operacionalizarem os processos de garantia da qualidade dependem de um esforço coletivo, que proporciona a economia de recursos durante todo o ciclo de vida do projeto de desenvolvimento de software. Ainda que de maneira bem específica, os processos de qualidade podem proporcionar algumas vantagens, listadas a seguir:

Muitas vezes as vantagens obtidas com a aplicação dos recursos de qualidade nas atividades de desenvolvimento de software demoram a serem sentidas no dia a dia, uma vez que isso ocorre conforme a utilização das ferramentas aplicadas torna-se uma prática comum e corriqueira. A partir desse ponto é que, naturalmente, as vantagens começam a fazer parte de todo o ciclo de vida do desenvolvimento de um software.

Reflita

Dentro das atividades de desenvolvimento de software existem diversos profissionais de diferentes áreas que devem conversar entre si, entre eles há: designers, programadores e DBA (Database Administrator). O bom diálogo entre eles é de extrema importância para que a integração ocorra de forma a atender as necessidades do sistema e com a qualidade desejada.

Caso os diferentes integrantes não tivessem uma proximidade, quais das vantagens em se utilizar os processos de qualidade de software poderiam ser prejudicadas?

Saiba mais 

A Sociedade Brasileira de Computação é uma entidade que visa, por meio de eventos, promover o conhecimento através de debates e fóruns. Anualmente ocorre um simpósio totalmente voltado às discussões acerca de qualidade de software.

Caro aluno, os conceitos de qualidade de software estão intrinsecamente ligados às ferramentas, aos métodos e às medições, que guiam a equipe de desenvolvimento de forma mais assertiva. Com isso, torna-se muito importante que o profissional de Tecnologia da Informação, o qual tem, em sua área de atuação, o desenvolvimento de software, compreenda as características técnicas ligadas à qualidade, a suas falhas e a como conseguir a garantia de qualidade nos processos de desenvolvimento durante o ciclo de vida do projeto. Dessa forma, podem-se proporcionar vantagens relevantes aos processos de desenvolvimento de software, que são convertidas em aumento de satisfação do cliente.

Faça valer a pena

Questão 1

Quando um projeto de desenvolvimento de software é iniciado, uma etapa muito importante é realizada: o levantamento de requisitos. Essa fase visa proporcionar à equipe de desenvolvimento uma compreensão das necessidades do cliente. Os requisitos podem ser classificados em duas categorias principais: requisitos funcionais, relacionados às funcionalidades específicas que o software deve oferecer, e requisitos não funcionais, que estão diretamente ligados à qualidade do software. É importante que o profissional saiba identificá-los.

Com base no exposto, assinale (F) para requisitos funcionais e (NF) para os requisitos não funcionais.

  • (  ) Inserir clientes pessoa física e jurídica.
  • (  ) A aplicação deve permitir a instalação nos sistemas operacionais Windows e Linux.
  • (  ) Todos os componentes devem ser responsivos, pois serão utilizados em notebooks e smartphones.
  • (  ) O sistema deve possuir funcionalidade para pagamento via cartão de débito e crédito e para emissão de nota.
  • (  ) O tempo de resposta da lista de produtos disponíveis deve ser just-in-time, de modo que o usuário não fique aguardando o carregamento.

Assinale a alternativa que apresente a sequência correta.

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Correto!

A identificação dos requisitos funcionais e não funcionais é tarefa básica e essencial para que o profissional de Tecnologia da Informação, cuja área de atuação é o desenvolvimento de software, possa organizar as tarefas a serem executadas dentro das premissas da qualidade de software. Os requisitos funcionais são aqueles que estão no nível do usuário e que descrevem a funcionalidade que se espera de um sistema. Já os requisitos não funcionais estão no nível de desenvolvimento e descrevem como determinado componente deve se comportar. Dessa forma, são requisitos funcionais: "inserir clientes pessoa física e jurídica" e "o sistema deve possuir a funcionalidade para pagamento via cartão de débito e crédito e para emissão de nota". Já os requisitos não funcionais são: "a aplicação deve permitir a instalação nos sistemas operacionais Windows e Linux", "todos os componentes devem ser responsivos, pois serão utilizados em notebooks e smartphones" e "o tempo de resposta da lista de produtos disponíveis deve ser just-in-time, de modo que o usuário não fique aguardando o carregamento".

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Questão 2

O desenvolvimento de softwares é uma atividade extremamente complexa. Por esse motivo, ter ferramentas de qualidade é um grande diferencial para se garantir que o produto final atenda às necessidades e às expectativas do cliente. Porém, em determinadas situações, algumas funcionalidades não executam as operações como o desejado. Observe a figura a seguir:

Figura | Exclusão de registro
Fonte: captura de tela de um software em desenvolvimento elaborada pelo autor.

Nesse exemplo, o cliente seleciona a opção para excluir determinado registro, confirma a exclusão no modal, porém o registro não é excluído do banco de dados e, consequentemente, continua sendo apresentado na lista.

Com base na situação apresentada, assinale a alternativa com o tipo do problema.

Tente novamente...

Tanto na fase de desenvolvimento quanto após as entregas, o mal funcionamento de alguns componentes e/ou funcionalidades pode ocorrer. Esses comportamentos, que aparecem de forma inesperada, podem ser de tipos diferentes e, para isso, o profissional da área de desenvolvimento que tenha foco na qualidade deve saber identificá-los. Portanto, falha de software está incorreto, pois, ao efetuar a exclusão, não é gerada nenhuma mensagem.

Tente novamente...

Tanto na fase de desenvolvimento quanto após as entregas, o mal funcionamento de alguns componentes e/ou funcionalidades pode ocorrer. Esses comportamentos, que aparecem de forma inesperada, podem ser de tipos diferentes e, para isso, o profissional da área de desenvolvimento que tenha foco na qualidade deve saber identificá-los. Portanto, erro de software está incorreto, pois não existe nenhum dado sendo gerado errado, apenas uma função não é completada.

Correto!

Tanto na fase de desenvolvimento quanto após as entregas, o mal funcionamento de alguns componentes e/ou funcionalidades pode ocorrer. Esses comportamentos, que aparecem de forma inesperada, podem ser de tipos diferentes e, para isso, o profissional da área de desenvolvimento que tenha foco na qualidade deve saber identificá-los. Portanto, defeito de software está correto, pois o processo é executado, porém a tarefa de exclusão não é feita.

Tente novamente...

Tanto na fase de desenvolvimento quanto após as entregas, o mal funcionamento de alguns componentes e/ou funcionalidades pode ocorrer. Esses comportamentos, que aparecem de forma inesperada, podem ser de tipos diferentes e, para isso, o profissional da área de desenvolvimento que tenha foco na qualidade deve saber identificá-los. Portanto, bug está incorreto, pois foi apresentada apenas uma funcionalidade que não se completa.

Tente novamente...

Tanto na fase de desenvolvimento quanto após as entregas, o mal funcionamento de alguns componentes e/ou funcionalidades pode ocorrer. Esses comportamentos, que aparecem de forma inesperada, podem ser de tipos diferentes e, para isso, o profissional da área de desenvolvimento que tenha foco na qualidade deve saber identificá-los. Portanto, anomalia está incorreta, pois o sistema está em pleno funcionamento, com apenas um defeito em determinada funcionalidade.

Questão 3

Toda e qualquer técnica, método, ferramenta ou tecnologia que se utilize em determinada atividade de desenvolvimento de software tem a intenção de fazer com que algumas vantagens sejam alcançadas a fim de se agregar qualidade.

Ao utilizar as ferramentas de garantia da qualidade, a equipe de desenvolvimento visa alcançar algumas vantagens. A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.

  1. Padronização das tarefas, que passam a se tornar boas práticas para a equipe de desenvolvimento.

POIS

  1. As atividades tendem a ser repetitivas e repeti-las será uma grande vantagem aos desenvolvedores, à equipe, à empresa e ao cliente.

A seguir, assinale a alternativa correta:

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Correto!

Ao se utilizarem as ferramentas, métodos, metodologias e processos de garantia da qualidade, podem ser alcançadas algumas vantagens interessantes, como: a padronização, o aumento de produtividade, o aumento do nível de satisfação do cliente, a economia de recursos e a prevenção quanto ao retrabalho. Dessa forma, a asserção I é verdadeira, uma vez que a padronização de trabalho, processos e desenvolvimentos visam fazer de boas práticas uma forma de se garantir que o produto final atenda a qualidade esperada. Já a asserção II é falsa, pois as atividades de desenvolvimento de software não são nada repetitivas, e a repetição não significa que uma atividade será executada dentro dos padrões de qualidade.

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Tente novamente...

Esta alternativa está incorreta, leia novamente a questão e reflita sobre o conteúdo para tentar novamente.

Referências

BOEHN, B. W.; BROWNN, J. R.; LIPOW, M. Characteristics of Software Quality. [S.l.: s.n.], 1977.

GERÊNCIA e Qualidade de Software – Apresentação da disciplina. [S.l.: s.n], 2018. 1 vídeo (2 min). Publicado pelo canal UNIVESP. Disponível em: https://bit.ly/38hgONe. Acesso em: 25 set. 2020.

PRESSMAN, R. S. Engenharia de Software. 6. ed. São Paulo: McGraw-Hill, 2006.

SANDERS, N. Há 20 anos, o ‘bug do milênio’ e o fim do mundo que não aconteceu. G1, São Paulo, 31 dez. 2019. Disponível em: https://glo.bo/3bhqaum. Acesso em: 19 out. 2020.

SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.

TONINI, A. C.; CARVALHO, M. M.; SPINOLA, M. M. Contribuição dos modelos de qualidade e maturidade na melhoria dos processos de software. Produção, v. 18, n. 2, p. 275-286, 2008. Disponível em: https://bit.ly/2XdqC4L. Aceso em: 19 out. 2020.

ZANIN, A. et al. Qualidade de Software. Porto Alegre: Sagah, 2018.

Bons estudos!

AVALIE ESTE MATERIAL

OBRIGADO PELO SEU FEEDBACK!