A Ferramenta Case (do inglês Computer Aided Software Engeneering), é uma ferramenta que oferece um conjunto de serviços, fortemente relacionados, para apoiar uma ou mais atividades do processo de desenvolvimento de software, em outras palavras, é uma ferramenta cujo objetivo prinicpal é auxiliar a construção de um software de forma mais prática e eficaz.
As ferramentas CASE operam em dois níveis:
* Alto Nível: Ferramentas que auxiliam nas atividades iniciais de requisitos e projetos;
* Baixo Nível: Ferramentas que auxiliam nas atividades de desenvolvimento.
O controle da qualidade é definido como um processo e métodos usados para monitorar o trabalho e observar se os requisitos estão sendo satisfeitos. O foco é justamente em revisões e remoção de defeitos antes mesmo do envio dos produtos. O controle da qualidade deve ser de responsabilidade da unidade organizacional que produz o produto. No entanto, é possível ter o mesmo grupo que constrói o produto, que realize também o controle da qualidade, ou estabelecer um grupo de controle da qualidade separado ou departamento dentro da mesma unidade organizacional que desenvolve o produto.
O controle da qualidade consistem de checklists bem definidos em um produto que é especificado no plano de garantia da qualidade. Um exemplos clássico de controle da qualidade são as inspeções de software. A inspeção é o grau mais maduro e formal dentro das revisões, sendo necessária uma preparação prévia, participantes definidos adequadamente e critérios de entrado e saída bem definidos.
O controle da qualidade é projetado para detectar defeitos e corrigir esses defeitos encontrados, enquanto que a garantida da qualidade é orientada através da prevenção de defeitos.
Para o controle do processo podemos definir requisitos, que implicam em:
* Competência para gerir: * O custo do software; * O tempo; * A qualidade.
Já um processo de software sem controle implica em:
* Improvisação; * Falta de rigor; * Qualidade ruim; * Riscos.
Desta forma a empresa acaba em "incêndio", ou seja, ela resolve o problema de forma inadequada.
Em 1977, McCall propôs um modelo para a avaliação da qualidade de software. Esse modelo envolve um conjunto de três fatores que avalia o software com relação a três pontos de vista distintos. A seguir o
I - Com relação ao uso do produto (Características Operacionais).
* Corretudide → Medida na qual o software satisfaz as especificações e objetivos visados pelo cliente.
* Confiabilidade → À medida que se pode esperar que um programa execute sua função pretendida com a precisão exigida.
* Eficiência → É a quantidade de recursos computacionais e de código exigida para que um programa execute sua função, com total precisão, visando realizar a operação de forma 100% segura.
* Integridade → Medida na qual, contrala-se o acesso ao software e aos dados, bloqueando assim o acesso de pessoas não autorizadas, para que não ocorra perda de dados ou de código.
* Usuabilidade → Mede a facilidade para a utilização do software.
II - Com relação a alteração do produto (Habilidade para ser alterado).
* Manutenção → O esforço exigido para localizar e reparar erros em um programa.
* Flexibilidade → O esforço utilizado para realizar uma alteração no software, isto é, qual o grau de facilidade que o sw oferece para a sua alteração, de forma rápida e eficaz?
* Testabilidade → São todos os recursos utilizados, no teste do software, isto é, o esforço exigido para testar um programa a fim de garantir que ele execute a função pretendida.
III - Transição do produto (Adaptabilidade a novos ambientes).
* Portabilidade → Mede a facilidade com que um produto pode ser movido para outra plataforma, ou software.
* Reusabilidade → Medida na qual o software, ou parte dele, poder ser reusado em outros softwares, em outras palavras, o código do sw deve ser reaproveitável.
* Interoperabilidade → O software é capaz de ser acoplado ao outro?
A visão de qualidade de software pode ser enxergda de três modos, que são os seguintes:
Usuário → este, avalia o software sem conhcecer seus aspectos internos, isto é, o usuário esta apenas concentrado na facilidade de uso do software, no seu desempenho, na confiabilidade dos resultados; de uma forma geral, o usuário, vê o software como algo que venha a solucionar o seu problema de forma prática, eficaz e segura.
Desenvolvedor → este, avalia aspectos de conformidade em relação aos requisitos dos clientes e também aspectos internos do software, isto é, um software, cujo tenha facilidade de manutenção e que seja bem codificado, podendo assim ser bem endentido, e reaproveitável.
Organização → esta, avalia aspectos de conformidade em relação aos requisitos dos clientes e desenvolvedores e também aspectos de custo e cronograma, ou seja, deve haver por parte da empres cumprimento de prazo, boa previsão de custo, boa produtividade e portabilidade.